我知道已经提出了类似的问题,但实际上没有人显示执行此操作的代码,它们只链接到也不显示代码的页面.
无论如何,基本上我的节点服务器接收socket.io事件的数据.我希望这些数据进入MongoDB.问题是我在mongo上看到的所有代码示例都只使用db对象操作MongoClient.connect回调中的db.
因为,我将获得大量这些数据,我不想一遍又一遍地初始化.
我需要的是这样的:
MongoClient.connect(("mongodb://" + process.env.IP + ":27017/Feedback"),function(err,db) { ... });
然后是:
socket.on('data',function (data) { db.doStuff(); });
解决方法
MongoClient.connect()如果你没有给它一个回调就返回一个promise,你可以声明一个全局的promise:
var connect = MongoClient.connect(url); socket.on('data',function(data) { connect.then(function(db) { }); }); socket.on('otherData',function(data) { connect.then(function(db) { }); });