MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Callback w operacji MongoDB z Node.js

Wywołujesz funkcję zwrotną od razu, ale przejście do bazy danych zajmuje trochę czasu i dlatego jest wykonywane asynchronicznie. Zamiast tego wywołaj swoje wywołanie zwrotne w odpowiednim czasie, używając argumentu wyniku funkcji przekazanego jako ostatni parametr do .findOne() funkcjonować. Wywołanie zwrotne powinno otrzymać argument błędu i argument wyniku:

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

to po prostu przeciąga ten sam wzór, którego używa sterownik mongodb. Mam nadzieję, że to pomoże.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Funkcja do zamiany wartości w NodeJS z mongo+mongoose

  2. Nie można uruchomić Mongo DB

  3. Pobieranie danych z mongodb przez nodejs i ekspresowe na stronę html

  4. Przyrost findOneAndUpdate zamiast aktualizacji w manguście

  5. Wpływ wydajności Meltdown na MongoDB:AWS, Azure i DigitalOcean