首页 > 解决方案 > 定义后如何从另一个文件中获取变量

问题描述

我正在尝试在另一个文件中获取 mongo 客户端。问题是,当我尝试获取 mongoClient 变量时,它返回未定义。

在尝试获取 mongoClient 变量之前,我如何才能等到它被声明?

文件 1

let mongoClient;

module.exports = async function() {
    const mongooseOptions = {...};
    mongoClient = await mongoose.connect(dbUrl, mongooseOptions);
};

exports.getMongoClient = () => mongoClient;

文件 2

const { getMongoClient } = require('../../startups/db');
console.log(getMongoClient); // Returns undefined

标签: node.jsmongodbmongoosemodulenode-modules

解决方案


您应该使用全局变量来访问任何文件,如下所示。

文件 1

global.mongoClient;

module.exports = async function() {
    const mongooseOptions = {...};
    global.mongoClient = await mongoose.connect(dbUrl, mongooseOptions);
};

文件 2

console.log(global.getMongoClient);

推荐阅读