我最近将我的基因数据应用程序(使用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}}
答案 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'
});
}
});
});