Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js中尚未初始化MongoDB连接_Javascript_Node.js_Mongodb - Fatal编程技术网

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

Javascript Node.js中尚未初始化MongoDB连接,javascript,node.js,mongodb,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.collec

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

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


是否有更好的做法来等待所有位置的连接启动?

我将此实现称为完整封装的示例:。不同之处在于,您没有将内部访问导出到mongo数据库实例,而是公开了封装模块及其方法的对象

如果您不想自己实现它,而是想利用现成的解决方案,那么您可以尝试这样的方法,这是node mongodb本机驱动程序的promise包装器