【发布时间】:2012-09-21 21:46:59
【问题描述】:
服务器端:
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 的问题。
【问题讨论】:
-
事后看来,我可能不应该这样做。我应该从数据库中检索所有信息,将其放入服务器端数组/对象中,然后将该数组/对象中的信息传递给客户端,而不是在用户询问信息时进行数据库查询。但是,出于学习的原因,我仍然很想知道如何完成这项工作。
标签: node.js mongodb mongoose nowjs-sockets