查询MongoDB(通过MongooseJS)并将结果保存在Javascript变量中?

时间:2012-09-21 13:41:48

标签: node.js mongodb mongoose nowjs-sockets

服务器端:

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的问题。

1 个答案:

答案 0 :(得分:1)

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

var now = this.now;
UserModel.findOne({name: 'guest'}, function(err, user) {
    now.receiveMessage(user.name);
});