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

Come riutilizzare una connessione mongo con le promesse

No, è impossibile quando non sai se il database è già connesso o meno. Se potrebbe essere necessario connetterti all'inizio, ed è asincrono, allora this.db deve mantenere una promessa e dovrai usare then .

Nota che con Bluebird puoi abbreviare un po' quel codice ed evitare quel dettagliato .then() richiamata utilizzando .call() metodo :

Job.prototype.getDb = function() {
  if (!this.db)
    this.db = Mongo.connectAsync(this.options.connection);
  return this.db;
};
Job.prototype.test = function() {
  return this.getDb().call('collection', 'abc').call('findAsync');
};