【问题标题】:Query MongoDB (via MongooseJS) and save result in Javascript variable?查询 MongoDB(通过 MongooseJS)并将结果保存在 Javascript 变量中?
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

  • facepalm 是的。我怎么会忘记。谢谢! :)
猜你喜欢
  • 2021-03-01
  • 2021-10-25
  • 2020-06-13
  • 1970-01-01
  • 1970-01-01
  • 2014-06-03
  • 1970-01-01
  • 2022-01-25
  • 1970-01-01
相关资源
最近更新 更多