sql >> Base de Datos >  >> NoSQL >> MongoDB

Cómo reutilizar una conexión mongo con promesas

No, eso es imposible cuando no sabes si la base de datos ya está conectada o no. Si necesita conectarse al principio, y eso es asíncrono, entonces this.db debe rendir una promesa, y deberá usar then .

Tenga en cuenta que con Bluebird puede acortar ese código un poco y evitar ese .then() devolución de llamada mediante .call() método :

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