【发布时间】:2020-07-10 05:00:03
【问题描述】:
我可以获取所有数据库数据以在我的 ejs 中呈现。我无法选择一条记录,即返回 jacks 记录。 findOne 似乎在 FindOne 上作为 console.log 工作,返回该人员记录,但它在 ejs 页面上不起作用,收到我的未找到记录消息。
查找所有代码的工作代码是:
服务器.js
app.get('/vieworders', require('connect-ensure-login').ensureLoggedIn(), function(req, res) {
Order.find(function(err, orders) {
res.render('vieworders', { orders: orders});
});
});
和ejs
<h1> Display Orders Here </h1>
<% if(orders.length>0) { %>
<table border="1">
<tr>
<th>Index</th>
<th>Name</th>
<th>size</th>
</tr>
<% for(var i=0; i<orders.length;i++) { %>
<tr>
<td><%= i %></td>
<td><%= orders[i].name %></td>
<td><%= orders[i].ordersize%></td>
</tr>
<% } %>
</table>
<% } else { %>
No Record Found
<% } %>
我想要的是类似下面的内容,而不是获取所有记录,我只获取千斤顶记录
app.get('/vieworders', require('connect-ensure-login').ensureLoggedIn(), function(req, res) {
Order.findOne({name: 'jack'}, function(err, orders) {
res.render('vieworders', { orders: orders});
});
});
【问题讨论】:
-
我想
findOne不会返回一个数组,并且 orders.length 是未定义的。0<undefined返回 false,阻止您的 for 循环运行并抛出类似“无法读取未定义的属性名称”的错误
标签: javascript html node.js mongodb ejs