我想将MongoDB中的所有内容显示到.ejs文件中的表中。但是我总会得到我在标题中写的错误。
以下是一些代码段:
这是我的路由js文件(users.js)
router.get ('/Benutzerverwaltung_Mitarbeiter', async (req, res) => {
User.find(function (err, users) {
// if there is an error retrieving, send the error.
// nothing after res.send(err) will execute
if (err)
return res.send(err);
res.json(users);
res.render('Benutzerverwaltung_Mitarbeiter',{
users: res.user
});
});
});
和我的.ejs文件:
<%- include('../routes/users.js'); %>
<div>
<table id="tabelle" class="cell-border" class="table table-striped" cellspacing="0" class="table table-hover">
<thead>
<tr>
<th>UserID</th>
<th>Rolle</th>
</tr>
</thead>
<tbody>
<tr>
<% users.forEach (function (user) { %>
<td><%user.username%></td>
</tr>
<td><%user.admin%></td>
<%});%>
</tbody>
</table>
</div>
希望您能帮到我:) 奶酪,梅尔特
答案 0 :(得分:2)
res.json
和res.render
都是“终端”方法-实际上,您在“完成”时仅应使用一次,而不能在同一方法中使用。
我认为在这种情况下,您尝试返回html而不是json,因此您需要res.render
。尝试此修改:
User.find(function (err, users) {
// if there is an error retrieving, send the error.
// nothing after res.send(err) will execute
if (err)
return res.send(err);
res.render('Benutzerverwaltung_Mitarbeiter',{
users: users || []
});
});
答案 1 :(得分:0)
在users.js中的res.render回调中,当您分配users
属性时,我发现了一个错字。
如果未定义应该保存数组的变量,则数组原型函数将始终在上面抛出该错误。