无法在部署的 Heroku 网站上显示 MongoLab 数据
Can't display MongoLab data on deployed Heroku website
我最近将我的遗传数据应用程序(使用 23andMe API)部署到 Heroku,并使用 Cloudflare 集成了 Universal SSL。我的数据存储在使用 Heroku 上的 MLab 插件的免费沙盒计划中。 23andMe 数据存储在 MLab 中。一旦我将我的网站添加到 Cloudflare,数据就很少显示在页面上。 99% 的时间 MLab 数据不显示,但有 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 提供的域名时工作,但在我配置 Universal SSL 并向 Heroku 添加自定义域名后立即停止工作。我正在使用 Handlebars.js 将数据绑定到我的 .handlebars
文件。谁能告诉我为什么在配置 Cloudflare 时我无法从 MLAB 获取数据并将其显示在我的 handlebars 文件中?
难道是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}}
这是我的数据库查询的问题。我添加了一个 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'
});
}
});
});
我最近将我的遗传数据应用程序(使用 23andMe API)部署到 Heroku,并使用 Cloudflare 集成了 Universal SSL。我的数据存储在使用 Heroku 上的 MLab 插件的免费沙盒计划中。 23andMe 数据存储在 MLab 中。一旦我将我的网站添加到 Cloudflare,数据就很少显示在页面上。 99% 的时间 MLab 数据不显示,但有 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 提供的域名时工作,但在我配置 Universal SSL 并向 Heroku 添加自定义域名后立即停止工作。我正在使用 Handlebars.js 将数据绑定到我的 .handlebars
文件。谁能告诉我为什么在配置 Cloudflare 时我无法从 MLAB 获取数据并将其显示在我的 handlebars 文件中?
难道是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}}
这是我的数据库查询的问题。我添加了一个 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'
});
}
});
});