我想从我创建的数据库reizen(在Mongoose中)打印所有项目。它从不打印总是打印的项目,而立即打印“ Geen reizen”。我一直在寻找很长一段时间,但我不知道如何解决。我的代码是:
var router = express.Router();
const mongoose = require('mongoose');
var db=mongoose.connection;
const { body, validationResult } = require('express-validator/check');
/* GET reizen*/
router.get('/', function(req, res, next) {
if (req.cookies.username != '') {
res.render('reizen', { sisu : req.cookies.username });
}
else {
res.render('reizen', { sisu : 'SIGN IN/SIGN UP'});
}
});
router.get('/getreizen', function(req, res, next) {
reizen.find({}, function(reizen) {
res.render('reizen', {reizen: reizen});
});
});
我仍在关于Cookie的第一部分中工作,因此您可以忽略该部分。
我在哈巴狗中的代码是:
extends layout
block content
#reizen.w3-content.w3-container.w3-padding-64
h3.w3-center REIZEN
a.w3-bar-item.border-button(href='/reistoevoegen')
| VOEG REIS TOE
p
|
|
p
each val in reizen ? reizen: []
a Titel: #{val.titel}
else
li Geen reizen.
我正在使用each val in reizen ? reizen: []
,因为否则会出现错误'无法从未定义获取属性长度'。
有人可以告诉我怎么了吗?
您的方法签名错误,您正在使用:
reizen.find({}, function(reizen) {
res.render('reizen', {reizen: reizen});
});
但是该回调具有签名function(err, reizen)
。
因此,您尝试在未定义的模板中打印错误。