以下路由器调用ejs模板将游标值填充到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模板中迭代光标有什么问题?
答案 0 :(得分:1)
游标操作是异步的。 Ejs不会等待它完成,并将在数据可用之前继续渲染模板。您无法在ejs模板中有效地使用回调。