1

服务器端:

var test;

UserModel.findOne({name: 'guest'}, function(err, user) {
    test = user.name;
});

console.log(test);

这不起作用。“test”的值没有记录在控制台中。不过,在“UserModel.findOne”回调函数中移动 console.log 是可行的。

问题

如何将“user.name”从我的数据库中取出并放入变量中?

额外细节

我这样做的原因是因为我想像这样将 Mongoose 与 NowJS 一起使用(从 MongoDB 中获取一些细节,使用 NowJS 等将其发送给客户端):

nowjs.on('connect', function () { 

    var test;

    UserModel.findOne({name: 'guest'}, function(err, user) {
            test = user.name;
            }); 

    this.now.receiveMessage(test);
});

但这严格来说不是关于 NowJS 的问题。

4

1 回答 1

1

您必须将 NowJS 调用放在回调中:

var now = this.now;
UserModel.findOne({name: 'guest'}, function(err, user) {
    now.receiveMessage(user.name);
}); 
于 2012-09-21T13:46:59.800 回答