2016-09-20 124 views
4

我最近将我的遗传数据应用程序(使用23andMe API)部署到Heroku,并使用Cloudflare集成了通用SSL。我的数据使用Heroku上的MLab插件存储在免费的Sandbox计划中。 23andMe数据存储在MLab中。只要我将我的网站添加到Cloudflare,数据就很少显示在页面上。 MLab数据没有显示的时间有99%,但占用了1%的时间。无法在已部署的Heroku网站上显示MongoLab数据

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}} 

回答

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' 
     });  
    } 
    }); 
});