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) {

  });
});

相关文章

现在的js代码都是这种高级点的方式语法 , 就是ts语法 ,要使用ts语法那就要先安装一下 先安装nodejs最...
nvm是node版本管理工具 为了解决node各种版本存在不兼容现象 nvm是让你在同一台机器上安装和切换不同版...
1、安装nodejs 2、在项目文件夹目录下创建一个js文件,命名server.js(自定义名称),内容如下 3、打开命令...
1.连接路径:path.join([path1][, path2][, ...]) path.join()方法可以连接任意多个路径字符串。要连接...
简介 1.aes加密简单来说,在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个...
定义 Object.keys 定义:返回一个对象可枚举属性的字符串数组; Object.getOwnPropertyNames 定义:返回...