node / mongodb - 如何存储查询结果

时间:2014-06-21 20:02:24

标签: javascript node.js mongodb express monk

我使用的是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"相同?在后面的代码中?

非常感谢

1 个答案:

答案 0 :(得分:1)

这是因为req.db.get()。find()是一个异步函数。 “res.render”可能在userlist = docs assignation之前发生。