MongoDB连接尚未在Node.js中初始化

时间:2014-07-21 15:13:32

标签: javascript node.js mongodb

我在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'问题

我知道我可以注册连接打开的回调, 但是我不想把它与脚本执行结合起来。

是否有更好的做法等待连接开始(对于所有地方?)。

1 个答案:

答案 0 :(得分:0)

我将此实现称为完整封装的示例:strongloop/loopback-connector-mongodb。区别在于,不是导出内部(访问mongo数据库实例),而是公开对象(封装模块)及其方法。

如果您不想自己实现它,而是想要使用现成的解决方案,可以尝试mongoskin之类的东西,它是node-mongodb-native驱动程序的promise包装器。