Я использовал this post в качестве руководства для создания некоторого кода NodeJS для подключения к экземпляру MongoDB, а затем вычислить разницу между двумя временными метками и затем отправьте это в шаблон nunjucks. Мой код:Рассчитайте разницу между двумя моделями от MongoDB в NodeJS и отправьте на nunjucks
app.get('/test', function(req,res){
db.authenticate('USER', 'PASSWORD', function(err, result) {
assert.equal(true, result);
});
db.test('TEST').find({Total_items:{$exists:true}}).forEach(function(thing) {
var date1 = new Date(thing.DTG_posted_UTC);
var date2 = new Date(thing.read_dtg);
var dateDiff = date1.getTime() - date2.getTime();
var data = ({_id:thing._id,DTG_posted_UTC:thing.DTG_posted_UTC, read_dtg:thing.read_dtg ,dateDiff:dateDiff});
});
return res.render('test', data);
});
});
экспресс-сервер загружает нормально, но когда я посещаю «Test» страницы приложение аварии и возвращает: «ReferenceError: data1 не определен».
Я знаю, что запрос работает, так как я могу выполнить log.console результаты и работает как ожидалось (см. Ниже).
app.get('/test', function(req,res){
db.authenticate('USER', 'PASSWORD', function(err, result) {
assert.equal(true, result);
});
db.test('TEST').find({Total_items:{$exists:true}}).forEach(function(thing) {
var date1 = new Date(thing.DTG_posted_UTC);
var date2 = new Date(thing.read_dtg);
var dateDiff = date1.getTime() - date2.getTime();
var data = ({_id:thing._id,DTG_posted_UTC:thing.DTG_posted_UTC,read_dtg:thing.read_dtg ,dateDiff:dateDiff});
console.log(data);
});
return res.render('test');
});
Unfortuantly Я не могу понять, как передать результаты запроса Монго в шаблон nunjucks. Любая помощь приветствуется.
Спасибо @Aikon Mogwai. Я пробовал исправить. Сервер запускается отлично, но при посещении страницы/теста он сбой и бросает сообщение «Can not set headers after they are sent». – ColSan
Я также добавил console.log (данные) перед «res.render (« test », data), и он отображает ожидаемые данные. Проблема, похоже, связана с res.render. – ColSan
Если console.log печатает данные тогда проблема внутри шаблона 'test'. В шаблоне вы должны использовать' {{dateDiff}} '(не' {{data.dateDiff}} ') для разницы в печати. –