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

问题描述 投票:0回答:1

我在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的正确代码?

BTW,在db.js中控制台记录db会返回我需要的内容。

我在db.js中有以下代码:const mongoClient = require('mongodb')。MongoClient; const dotenv = require(“ dotenv”); dotenv.config(); const mongoDbUrl = process.env.CONNECTIONSTRING; mongoClient ....

node.js mongodb require module.exports
1个回答
1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.