2016-09-20 3 views
4

Недавно я применил приложение для генетических данных (используя API 23andMe) к Heroku и интегрировал Universal SSL с помощью Cloudflare. Мои данные хранятся в бесплатном плане Sandbox, используя аддон MLab на Heroku. Данные 23andMe хранятся в MLab. Как только я добавил свой сайт в Cloudflare, данные редко отображались на странице. В 99% случаев данные MLab не отображаются, но в 1% случаев.Не удается отобразить данные MongoLab на развернутом веб-сайте Heroku

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 и отобразить его в моем файле handlebars при настройке 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' 
     });  
    } 
    }); 
});