Node.jsのネイティブ Mongo ドライバーのラッパーとしてMongoJSを使用しようとしています。、などpopulate()
のメソッドを使用して、コレクション内のドキュメントを JavaScript クラスとしてモデル化しています。save()
C# や Java などのほとんどの言語では、クエリごとに明示的に接続してから切断することに慣れています。ほとんどの例は、接続の例のみを示していますが、完了時に接続を閉じることはありません。ドライバーがこれを自分で管理できるのか、それとも自分で手動で管理する必要があるのかはわかりません。ドキュメントはまばらです。
関連するコードは次のとおりです。
User.prototype.populate = function(callback) {
var that = this;
this.db = mongo.connect("DuxDB");
this.db.collection(dbName).findOne({email : that.email}, function(err, doc){
if(!err && doc) {
that.firstName = doc.firstName;
that.lastName = doc.lastName;
that.password = doc.password;
}
if (typeof(callback) === "function"){
callback.call(that);
}
that.db.close();
});
};
MongoJS オブジェクトでメソッドを呼び出すとすぐにclose()
、後続の呼び出しで新しい接続を開くことができなくなりました。ただし、このメソッドを呼び出さないと、Mongo からの切断を待機しているかのように、すべての非同期呼び出しが終了しても Node プロセスは終了しません。
MongoJSでMongoへの接続を管理する適切な方法は何ですか?