sql >> データベース >  >> NoSQL >> MongoDB

Node.jsを使用したMongoDB操作でのコールバック

    すぐにコールバック関数を呼び出していますが、データベースへの移動には時間がかかるため、非同期で実行されます。代わりに、.findOne()に最後のパラメーターとして渡された関数の結果引数を使用して、適切なタイミングでコールバックを呼び出します。 関数。コールバックはエラー引数と結果引数を取得する必要があります:

    login: function(user, pass, callback) {
        db.open(function (err, db) {
            if(!err) {
                db.collection("users", function(err, collection) {
                    collection.findOne(
                        {
                            "username": user,
                            "password": pass
                        },
                        function(err, item) {
                            if(!err) {
                                callback(null,item);
                            } else {
                                callback("error");
                            }
                        }
                    );
                });
            } else {
                callback("error",null);
            }
        });
    }
    
    
    user.login("test", "test", function(err,msg) {
        if( err ) {
          //error occured above;
        } else {
          //success
          console.log(msg);
        }
    });
    

    これは、mongodb-driverが使用しているのと同じパターンを引き出しているだけです。お役に立てば幸いです。




    1. マングースの特定のフィールドのみにデータを入力する

    2. MongoDBObjectIdsの公開

    3. Macのmongodbのログファイルはどこにありますか

    4. DBRefを使用したMongoDBアグリゲーション