node.js - 定义后如何从另一个文件中获取变量
问题描述
我正在尝试在另一个文件中获取 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
解决方案
您应该使用全局变量来访问任何文件,如下所示。
文件 1
global.mongoClient;
module.exports = async function() {
const mongooseOptions = {...};
global.mongoClient = await mongoose.connect(dbUrl, mongooseOptions);
};
文件 2
console.log(global.getMongoClient);
推荐阅读
- ajax - WordPress 多个 Ajax 搜索 URL
- java - 如果在Android的xml文件中定义为匹配父级,如何在任何适配器类中获取视图的实际宽度
- react-native - 输入失去对开始输入主题的关注
- android-studio - 当我单击获取位置按钮时,应用程序在 iOS 模拟器的权限屏幕上冻结
- php - 在一组图像中搜索图像
- javascript - 如何使 cookieJar 兼容,以便 puppeteer 可以正确地将它们设置为浏览器?
- angular - 使用代码管道在 AWS S3 上部署 Angular 7 应用程序时出错
- rust - 为什么这个 rppal I2c 结构没有任何方法?
- android - 如何使用 PackageInstaller 以编程方式卸载 android 中的应用程序
- javascript - 无法在Javascript中推送()元素(第一次迭代后)