无法在已部署的Heroku网站上显示MongoLab数据

时间:2016-09-20 21:17:13

标签: mongodb express heroku handlebars.js mlab

我最近将我的基因数据应用程序(使用23andMe API)部署到Heroku,并使用Cloudflare集成了通用SSL。我的数据使用Heroku上的MLab插件存储在免费的Sandbox计划中。 23andMe数据存储在MLab中。一旦我将我的网站添加到Cloudflare,数据很少会显示在页面上。 MLab数据有99%的时间没有显示,但是有1%的时间显示。

router.get('/tools/my-genetics', ensureAuthenticated, function(req, res) {
  var data = {};
  if(req.user) {

   SNPs.find({user_id: req.user._id}).then(function(result) {
    data.genes = result;


   })

   res.render('tools/gene_data', {
    data: data,
    user: req.user,
    layout: 'dash'
   });
  }
});

我不知道为什么它在我的本地环境中工作以及使用Heroku提供的域名时,但在我配置通用SSL并向Heroku添加自定义域名后立即停止工作。我正在使用Handlebars.js将数据绑定到我的.handlebars文件。任何人都可以告诉我为什么我无法从MLAB获取数据并在配置Cloudflare时将其显示在我的手柄文件中?

可能是Cloudflare的防火墙访问规则吗?

我的观点如下:

   {{#each}}
    <ul class="list-group">
     <li class="list-group-item lead">1. For {{diseases.0.snp}}, your Genotype is {{genotypes.rs28936694}}. This snp is {{diseases.0.risk}} {{diseases.0.descr}} This snp is located on {{diseases.0.location}}.
     </li>
     <li class="list-group-item lead">2. For {{diseases.1.snp}}, your Genotype is {{genotypes.rs3825942}}. {{diseases.1.risk}} {{diseases.1.descr}} This snp is located on {{diseases.1.location}}.
     </li> 
     <li class="list-group-item lead">3. For {{diseases.8.snp}}, your Genotype is {{genotypes.rs1048661}}. {{diseases.8.risk}} {{diseases.8.descr}} This snp is located on {{diseases.8.location}}.
     </li>
    </ul>
   {{/each}}

1 个答案:

答案 0 :(得分:0)

这是我的数据库查询的问题。我添加了一个if/else语句,它有效。

router.get('/tools/my-genetics', ensureAuthenticated, function(req, res) {
  var data = {};

  SNPs.find({user_id: req.user._id}).exec(function(err, result) {
    data.genes = result;


    if(err) {
      console.log(err);
    }else {
      console.log('===result inside here===: ' + result);

      res.render('tools/gene_data', {
        data: data,
        user: req.user,
        layout: 'dash'
      });      
    }
  });
});