sql >> Database >  >> NoSQL >> MongoDB

Node.js belooft met mongoskin

Je kunt de hele module zo beloven met 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);

Dit hoeft maar één keer op één plaats in uw applicatie te gebeuren, niet ergens in uw applicatiecode.

Daarna gebruik je gewoon methoden, behalve met het Async-achtervoegsel en geef je geen callbacks door:

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

Dus nogmaals, als je een functie aanroept zoals

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

De belofte-terugkerende versie heet als volgt:

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

(Niet-opgevangen fouten worden automatisch gelogd, dus u hoeft ze niet te controleren als u ze alleen gaat loggen)



  1. Play framework mongodb morphia-module installeren

  2. verbinding maken met Mongodb in een docker met Mongodb-kompas GUI

  3. mongodb &max verbindingen

  4. Meerdere limietcondities in mongodb