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

Node.js lover med mongoskin

Du kan love hele modulet sådan med bluebird:

var Promise = require("bluebird");
var mongoskin = require("mongoskin");
Object.keys(mongoskin).forEach(function(key) {
  var value = mongoskin[key];
  if (typeof value === "function") {
    Promise.promisifyAll(value);
    Promise.promisifyAll(value.prototype);
  }
});
Promise.promisifyAll(mongoskin);

Dette skal kun gøres ét sted én gang i din ansøgning, ikke nogen steder i din ansøgningskode.

Derefter bruger du bare metoder normalt undtagen med Async-suffikset og sender ikke tilbagekald:

req.db.collection('users').find().toArrayAsync()
  .then(function(doc) {
    if (doc) {
      return req.db.collection('users').find().toArrayAsync();
    }
  })
  .then(function(doc) {
    if (doc) {
      return req.db.collection('users').find().toArrayAsync();
    }
  })
  .then(function(doc) {
    if (doc) {
      return req.db.collection('users').find().toArrayAsync();
    }
  });

Så igen, hvis du kalder en funktion som

foo(a, b, c, function(err, result) {
    if (err) return console.log(err);
    //Code
});

Den lovende returnerende version hedder sådan:

fooAsync(a, b, c).then(...)

(Ufangede fejl bliver automatisk logget, så du behøver ikke at tjekke for dem, hvis du kun skal logge dem)



  1. Hvordan tæller man produktgruppe klogt med feltnavn i Monogodb?

  2. Hvordan kalder man til mongodb inde i mine kort-/reduceringsfunktioner? Er det en god praksis?

  3. Sådan opretter du en bruger i MongoDB

  4. Arkitektur til Redis cache &Mongo for vedholdenhed