sql >> Database >  >> NoSQL >> MongoDB

Synchrone functie-aanroepen voor nodejs mongodb-stuurprogramma

Je kan niet gebruik een asynchroon resultaat als de geretourneerde waarde van een functie. Het is zo simpel. Je moet het asynchrone resultaat aan de beller leveren via een callback die als parameter aan de functie wordt gegeven (of gebruik futures/promises en stel die stap effectief uit, maar dat is meer betrokken).

if_exists zou er in plaats daarvan zo uit moeten zien:

var if_exists = function(query, where, callback) {

  require('mongodb').connect(DB.mongo_url, function(err, db) {
    db.collection(where, function(err, coll) {
      coll.findOne(query, function(e, r) {
        //console.log(r);
        if (r === null) {
          callback(e, false);
        } else {
          callback(e, true);
        }
        // You should either close db here or connect during start up
        // and leave it open.
        db.close();
      });
    });
  });
}



  1. Een Foreign Key-relatie creëren in Mongoose

  2. MongoDB retourneert True als document bestaat

  3. Mongodb $where-query altijd waar met nodejs

  4. Mongodb-verzameling als dynamisch