Anda dapat menggunakan event untuk menanganinya sebagai callback.
Dan mungkin memiliki variabel global Anda yang akan mengidentifikasi bahwa itu tidak terhubung.
Anda dapat memiliki db.js
yang terpisah file, yang akan berperilaku sebagai modul. Dan Anda dapat memiliki fungsi untuk mendapatkan koleksi darinya.
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'));
}
}
Jadi untuk menggunakannya:
var db = require('./db.js');
db.get('users', function(err, collection) {
if (!err) {
collection.find({ ...
} else {
console.log(err);
}
});
Maaf, baru menyadari bahwa Anda menggunakan Mongoose, yang mungkin sedikit berbeda.