Sie können event verwenden, um es als Rückruf zu behandeln.
Und vielleicht haben Sie Ihre globale Variable, die erkennt, dass sie nicht verbunden ist.
Sie können separate db.js
haben Datei, die sich als Modul verhält. Und Sie können eine Funktion haben, um eine Sammlung davon zu erhalten.
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'));
}
}
Also, um es zu benutzen:
var db = require('./db.js');
db.get('users', function(err, collection) {
if (!err) {
collection.find({ ...
} else {
console.log(err);
}
});
Tut mir leid, ich habe gerade bemerkt, dass Sie Mongoose verwenden, was geringfügig anders sein kann.