【问题标题】:Mongodb cursor is empty in ejs template(Async call inside ejs )Mongodb 游标在 ejs 模板中为空(ejs 内的异步调用)
【发布时间】:2015-05-07 01:05:46
【问题描述】:

下面的路由调用ejs模板将cursor的值填充到html页面中。

router.get('/users_loaded_disconnect', function(req, res) {
    res.render('users_loaded_disconnect',
           {cursor: req.db.collection('notify_user_state_collection').find({})});
});

user_loaded_disconnect.ejs

<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
    <b> Users Loaded Disconnect </b>
    <ul>
      <% cursor.nextObject(function(err, item) { %>
      <%= JSON.stringify(item) %>
      <% }); %>
    </ul>
  </body>
</html>

光标不起作用。但是,如果光标像下面的代码一样在路由器中迭代,它会打印值

req.db.collection('notify_user_state_collection').find({}).nextObject(function(err, item) {
        console.log(JSON.stringify(item));
    });

在 ejs 模板中迭代光标有什么问题?

【问题讨论】:

    标签: node.js mongodb express ejs


    【解决方案1】:

    游标操作是异步的。 Ejs 不会等待它完成,并且会在数据可用之前继续渲染模板。您无法在 ejs 模板中有效地使用回调。

    【讨论】:

      猜你喜欢
      • 2016-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-24
      • 2017-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多