node.js – 在连接回调之外访问MongoDB

前端之家收集整理的这篇文章主要介绍了node.js – 在连接回调之外访问MongoDB前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道已经提出了类似的问题,但实际上没有人显示执行此操作的代码,它们只链接到也不显示代码页面.

无论如何,基本上我的节点服务器接收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) {

  });
});

猜你在找的Node.js相关文章