いいえ、データベースがすでに接続されているかどうかがわからない場合、それは不可能です。最初に接続する必要があり、それが非同期である場合は、this.db
約束をする必要があり、then
を使用する必要があります 。
Bluebirdを使用すると、そのコードを少し短くして、その冗長な.then()
を回避できることに注意してください。 を使用したコールバック.call()
メソッド
:
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');
};