【问题标题】:Display FindOne query in Nodejs ejs在 Nodejs ejs 中显示 FindOne 查询
【发布时间】: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&lt;undefined 返回 false,阻止您的 for 循环运行并抛出类似“无法读取未定义的属性名称”的错误

标签: javascript html node.js mongodb ejs


【解决方案1】:

FindOne 仅返回一项,因此,在 ejs 中,您将得到 orders.length 0 或者未定义。

尝试在 FindOne 中将变量名称更改为 order 并更改如下:

<% if(order or orders.length>0) { %>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-16
    • 1970-01-01
    • 2019-07-30
    • 2015-05-12
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多