我可以获取所有数据库数据以在我的ejs中呈现。我在选择一条记录(即返回千斤顶记录)时遇到了麻烦。 findOne似乎可以作为console.log在FindOne上返回该人的记录,但在ejs页面上却不起作用,并显示我的No record found消息。
查找全部内容的工作代码是:
Server.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仅返回一项,因此,在ejs中,您得到的是orders.length 0或未定义。您应该将orders.lenght> 0或if子句中的订单。
尝试:
<% if(orders or orders.length>0) { %>