1

サーバ側:

var test;

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

console.log(test);

これは動作しません。「test」の値はコンソールに記録されません。ただし、「UserModel.findOne」コールバック関数内に console.log を移動すると機能します。

質問

「user.name」をデータベースから変数に取得するにはどうすればよいですか?

追加の詳細

私がこれを行っている理由は、このように NowJS で Mongoose を使用したいからです (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 に答える