イベントを使用してコールバックとして処理できます。
そして、接続されていないことを識別するグローバル変数があるかもしれません。
個別のdb.js
を持つことができます ファイル、モジュールとして動作します。そして、あなたはそれからコレクションを取得する機能を持つことができます。
var mongodb = require('mongodb');
var client;
var collections = { };
new mongodb.Db( ... ).open((function (err, c) {
if (!err) {
client = c;
client.on('close', function() {
client = null; // clear client
collections = { }; // clear old collections
// connection closed
});
} else {
// error connecting
}
});
// get collection
exports.get = function(name, callback) {
if (client) {
if (!collections[name]) {
collections[name] = new mongodb.Collection(client, name);
}
callback(null, collections[name]);
} else {
// can perform reconnecting and then get collection and call callback
callback(new Error('not connected'));
}
}
だからそれを使うには:
var db = require('./db.js');
db.get('users', function(err, collection) {
if (!err) {
collection.find({ ...
} else {
console.log(err);
}
});
申し訳ありませんが、マングースを使用していることに気づきました。これは若干異なる場合があります。