sql >> Database >  >> NoSQL >> MongoDB

Terugbellen bij MongoDB Operation With Node.js

Je roept meteen de callback-functie aan, maar naar de db gaan kost tijd en gaat dus asynchroon. Roep in plaats daarvan uw callback op het juiste moment aan met behulp van het resultaatargument van de functie die als laatste parameter is doorgegeven aan de .findOne() functie. De callback zou een foutargument en een resultaatargument moeten krijgen:

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

dit trekt gewoon hetzelfde patroon door dat de mongodb-driver gebruikt. Ik hoop dat het helpt.




  1. Herhaal grote verzamelingen in MongoDB via spring-data

  2. Overslaan en beperken voor paginering voor een Mongo-aggregaat

  3. Training mislukt - AWS Machine Learning

  4. sql 'like' bewerkingen op getallen in mongodb