MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como reutilizar uma conexão mongo com promessas


Não, isso é impossível quando você não sabe se o banco de dados já está conectado ou não. Se você precisar se conectar primeiro, e isso for assíncrono, this.db deve render uma promessa, e você precisará usar then .

Observe que com o Bluebird você pode encurtar um pouco esse código e evitar o verboso .then() retorno de chamada usando o .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');
};