我使用的是Express.js,我有这个简单的路由器
router.get('/', function(req, res) {
var userlist;
req.db.get("usercollection").find({},{})
.success(function(docs){
userlist = docs;
});
res.render('index', { title: 'Express' , userlist: userlist});
});
但没有任何内容会进入用户列表。我知道将上述内容写成
router.get('/', function(req, res) {
req.db.get("usercollection").find({},{})
.success(function(docs){
res.render('index', { title: 'Express' , userlist: docs});
});
});
会起作用,但我想知道为什么以前不起作用。另外,db.get(...)。find()返回什么?它是否与" docs"相同?在后面的代码中?
非常感谢
答案 0 :(得分:1)
这是因为req.db.get()。find()是一个异步函数。 “res.render”可能在userlist = docs assignation之前发生。