Node.js 设置DB数据后在nodejs中加载模块

Node.js 设置DB数据后在nodejs中加载模块,node.js,Node.js,我的最终目标是让module.exports包含一些在app init期间加载的DB值 我试过以下方法 module.exports = (async function() { const cities = await internalUsage.aggregate(citiesPipeline); console.log("HandleCities - Cities loaded") return cities[0].cities; })(); 但这给了我一个承诺 你知道

我的最终目标是让module.exports包含一些在app init期间加载的DB值

我试过以下方法

module.exports = (async function() {
const cities = await internalUsage.aggregate(citiesPipeline);
console.log("HandleCities - Cities loaded")
return cities[0].cities;
})();
但这给了我一个承诺

你知道怎么做吗

**更新**


现在我正在使用globals,如果有人有办法将其保存在模块中,我很乐意听到

遗憾的是,仅使用
模块.exports是不可能的。由于函数是
async
的,所以在使用vanilla NodeJS
模块时,您可以得到的最好的东西是
承诺

如果您可以
等待
,这就没那么糟糕了
module.exports
像工厂一样工作,无论您
需要它多少次,都只会生成一个承诺

const citiesPromise = require('./XXXXX_XXXXX');

(async function(){
   const cities = await citiesPromise();
   ...
});

另一种解决方案是使用
依赖项注入
(DI)和
异步工厂
支持来抽象NodeJS模块。这将允许您导出一个
承诺
,并获得其作为注入的价值

并非所有NodeJSDI都为
async
值提供这种抽象,因此在选择DI库时要小心

您可以检查,尽管它鼓励使用TypeScript,但它也有ES6示例