已更新
我想打印我创建的数据库 reizen(在猫鼬中(中的所有项目。它从不打印它总是打印的项目立即打印"Geen reizen"。我一直在寻找一段时间,我不知道如何解决它。我的代码是:
var router = express.Router();
const mongoose = require('mongoose');
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(err, 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
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)
。
所以你试图在你的模板中打印错误(err
(,这是未定义的。
更新:
下一个测试是从方程中排除 db。更新代码并再次运行。
const data = [
{ titel: "A" },
{ titel: "B" },
]
res.render('reizen', {reizen: data});