sql >> Databáze >  >> NoSQL >> MongoDB

Node.js slibuje s mongoskin

Můžete slíbit celý modul takto s 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);

Toto je třeba provést pouze jednou na jednom místě ve vaší aplikaci, nikoli kdekoli v kódu aplikace.

Poté už jen normálně používáte metody kromě s příponou Async a nepředávejte zpětná volání:

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

Takže znovu, pokud zavoláte funkci jako

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

Verze, která vrací slib, se nazývá:

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

(Nezachycené chyby jsou automaticky zaprotokolovány, takže je nemusíte kontrolovat, pokud je chcete pouze zaznamenat)



  1. Ukládání a načítání objektů JavaScript v/z MongoDB

  2. Jak napsat bson formu mongo dotazu v golangu?

  3. Nelze získat zdroj z fondu (SocketTimeoutException:)

  4. Jak mohu nainstalovat knihovnu Redis perl ručně, tj. offline. A odkud mohu získat všechny závislosti k instalaci