使用Pug打印数据库猫鼬中的所有项目



已更新

我想打印我创建的数据库 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});

最新更新