我在Node.js中使用MongoDB将其封装在一个模块中:
var MongoClient = require('mongodb').MongoClient;
MongoClient.connect(..., function(err, db) {
if (err) {/* handle */}
exports.db = db;
});
现在,无论我想在哪里使用mongoDB连接,我只需
var mongo = require('mongo');
mongo.db.collections(...)
问题是有一段时间连接没有初始化 我得到了未定义的db'问题
我知道我可以注册连接打开的回调, 但是我不想把它与脚本执行结合起来。
是否有更好的做法等待连接开始(对于所有地方?)。
答案 0 :(得分:0)
我将此实现称为完整封装的示例:strongloop/loopback-connector-mongodb。区别在于,不是导出内部(访问mongo数据库实例),而是公开对象(封装模块)及其方法。
如果您不想自己实现它,而是想要使用现成的解决方案,可以尝试mongoskin之类的东西,它是node-mongodb-native驱动程序的promise包装器。