服务器端:
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的问题。
答案 0 :(得分:1)
你必须将NowJS调用放在回调中:
var now = this.now;
UserModel.findOne({name: 'guest'}, function(err, user) {
now.receiveMessage(user.name);
});