我必须做一些非常愚蠢的事情,但我找不到什么。我想非常简单地列出MongoDB集合中的文档。我正在使用nodejs,mongoose和Jade(我知道应该转移到Pug)并且我想保持一切简单,它是为了维护目的而能够查看数据。
这是我的玉文件:
extends layout
block content
.uk-container(align="center")
br
table.uk-table(width="100%")
thead
tr
th username
th firstlogin
th lastlogin
tbody
#{results}
这是我的路线:
router.get('/ListUsers',function(req, res, next) {
// need to check the validity of the person
Account.find({'schema':'toto'}, function(err, user) {
if (err) {
console.log(err); // we should not have an error, it means db has pb
} else {
var userList ="";
user.forEach(function(record){
userList+="<tr><td>"+record.nomuser+"</td><td>"+record.firstlogin+"</td><td>"+record.lastlogin+"</td></tr>";
})
console.log(userList); // it is perfect and if put in the jade shows perfectly well
res.render('super_user_list',{results:userList});
}
});
}); // end ListUsers
渲染令我感到困惑:
首先在顶部我在中间(如果我将console.log结果直接放在Jade中则不显示)
<>>
我不明白它来自哪里。然后我的记录集重复了。
我做错了什么?我想要一个没有额外的javascript等的简单页面,我发现自己有一个我无法解决的谜! :(
感谢您的任何想法,建议解释!
答案 0 :(得分:0)
由于您已经在使用模板引擎,因此无需在路线中单独生成HTML。这就是使用模板引擎的重点。这是应该实现你想要实现的目标。
您的新路线应如下所示:
router.get('/ListUsers',function(req, res, next) {
Account.find({'schema':'toto'}, function(err, user) {
if (err) {
console.log(err);
} else {
// pass matched documents to template
res.render('super_user_list', { results: user });
}
});
});
模板文件现在可以处理您的结果:
extends layout
block content
.uk-container(align="center")
br
table.uk-table(width="100%")
thead
tr
th username
th firstlogin
th lastlogin
tbody
each record in results
td= record.nomuser
td= record.firstlogin
td= record.lastlogin
如果您知道是否需要任何澄清,请告诉我们。