在Nodejs ejs中显示FindOne查询

问题描述 投票:0回答:1

我可以获取所有数据库数据以在我的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});

      });
});
javascript html node.js mongodb ejs
1个回答
0
投票

FindOne仅返回一项,因此,在ejs中,您得到的是orders.length 0或未定义。您应该将orders.lenght> 0或if子句中的订单。

尝试:

<% if(orders or orders.length>0) { %>
© www.soinside.com 2019 - 2024. All rights reserved.