模块将mongodb导出到另一个文件-正确的方法是什么?(在nodejs中)

醛糖

我在db.js中有以下代码

const mongoClient = require('mongodb').MongoClient;

const dotenv = require("dotenv");
dotenv.config();
const mongoDbUrl = process.env.CONNECTIONSTRING;


mongoClient.connect(mongoDbUrl, { useNewUrlParser: true, useUnifiedTopology: true }, (err, db) => {
  module.exports = db;
});

然后我想将它添加到文件user.js的

const mydb = require("../db");
console.log(mydb);

,但我得到一个空对象:

{}

什么是使User.js接收mydb的正确代码?

顺便说一句,控制台在db.js中记录db会返回我所需要的。

贾斯汀·马斯

连接异步时,请求是同步的。最终它将在那里,但是您应该做的是导出一个具有异步init函数的对象,然后在启动过程中调用该对象,以确保其余运行代码在此之后发生。本质上,您不应该“运行”模块中的任何代码,而只能导出值。

// db.js
const mongoClient = require('mongodb').MongoClient;
const dotenv = require("dotenv");

class Db {
  async init() {
    dotenv.config();
    const mongoDbUrl = process.env.CONNECTIONSTRING;
    this.db = await mongoClient.connect(mongoDbUrl, { useNewUrlParser: true, useUnifiedTopology: true }
  }
}
module.exports = new Db()

然后在您的调用代码中:

// main.js
const db = require('./db')
const app = require('./app')

async function main() {
  await db.init()
  await app.run()
}

main().then(() => console.log('done.')).catch(console.error)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将Remmina远程桌面文件复制或导出到另一个Ubuntu安装中

如何将2个不同的函数从一个js文件导出到Protractor中的另一个Js文件

在CSV文件中应用diff()函数,然后导出到另一个CSV文件

如何将此变量从类方法导出到另一个文件?

无法在nodejs中的另一个文件中导出模块

postgresql是将特定表从数据库中的特定列导出到另一个数据库的最佳方法是什么

如何将几个文本文件中唯一的所有数字导出到另一个文件中?

将变量从一个Shell脚本导出到bash中的另一个脚本

将JSON对象包装在另一个对象中的正确方法是什么?

如何将 Moongoose 方法中的错误处理回调函数导出到另一个 .js 文件中

修复java.lang.module.ResolutionException:两个模块相同的包导出到另一个模块中的非模块化的应用程序

如何将电子邮件(电子邮件)中的附件批量导出到 Outlook 中的另一个文件夹

将C标头函数从另一个包导出时,将C标头函数导入到R包中的正确方法是什么?

将模块包含到另一个nodeJS文件中

在另一个类的方法中调用类实例的正确方法是什么?

如何将一个类和函数中的变量导出到Angular中的另一个组件?

从另一个包中覆盖symfony扩展的“正确”方法是什么

在PHP中创建另一个类的对象的正确方法是什么?

将PHP脚本分割并集成到另一个脚本中的正确方法是什么?

节点js导出模块在我导入它的另一个文件中返回未定义的值

Python导入模块在另一个文件中

在另一个文件中导出,在同一个文件中调用

如何使用另一个文件中的JavaScript将中文输出到HTML中的表

将nodejs MongoDB连接代码移动到另一个文件

在 AngularJS 中,从另一个模块导入组件的最佳方法是什么?

如何将模块模式函数导出到另一个 JavaScript 文件

将一个Excel文件中的不同图纸导出到不同的pdf文件?

Apps 脚本将数据导出到另一个电子表格,在 xlsx 中构建它并将其附加到电子邮件

从Angular 2中的另一个模块导出服务