5

現在、このエラーによって壁に押し上げられています。

mongodb の mongojs ラッパーを使用して node.js アプリを実行しています。デフォルトのポートでmongodを開始してから実行しました

var db = require('mongojs').connect('localhost:27017/my_db');
var users = db.collection('users');    
users.findOne({'fb_id' : fbUserMetadata.id}, function(err, user) {
                console.log(err);
                console.log(user);
                debugger;

    });

ただし、err と user はどちらも「null」です。私の知る限り、何も見つからなくても、エラーには何らかのデータが入力されているはずです。

コールバック関数を正しく動作させるにはどうすればよいですか? 初心者の質問を許してください。

4

1 に答える 1

10

findOneクエリで一致するドキュメントが 1 つも見つからない場合、コールバックの 2 番目のパラメーター (この場合userは ) が に設定されnullます。エラーではありません。エラーでerrもありnullます。したがって、あなたが見ているのは、予想される一致が見つからない応答です。

アップデート

findOneは 2.0 ドライバーで廃止されましたが、その代替品でも同じ動作が見られることに注意してください。

users.find({'fb_id' : fbUserMetadata.id}).limit(1).next(err, doc) {
    // doc is null if a matching document wasn't found
});
于 2012-08-20T00:33:19.557 に答える