sql >> Database teknologi >  >> NoSQL >> MongoDB

Callback ved MongoDB Operation With Node.js

Du ringer til tilbagekaldsfunktionen med det samme, men at gå til db tager tid og foregår derfor asynkront. Ring i stedet dit tilbagekald på det passende tidspunkt ved hjælp af resultatargumentet for funktionen, der er sendt som den sidste parameter til .findOne() fungere. Tilbagekaldet skulle få et fejlargument og et resultatargument:

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);
    }
});

dette trækker bare det samme mønster igennem, som mongodb-driveren bruger. håber det hjælper.




  1. gke kan ikke deaktivere Transparent Huge Pages... tilladelse nægtet

  2. MongoDb c# driver find element i array efter feltværdi

  3. MongoDB java klientens WriteConcern virker ikke

  4. Mongodb $in mod et felt af objekter af array i stedet for objekter af array