我试图找到我的问题的解决方案,但找不到它,并且正在寻找一些“最佳实践示例”。我有一个 nodejs express 应用程序,我的函数被拆分为文件。例如我有这个控制器(oktacontroller.js):
var okta_api_key = <here some await data, getting from db>;
const OKTA_ORG_URL = '<here too>';
exports.createUser = async (req, res) => {
console.log(okta_api_key);
}
exports.getGroups = async (req, res) => {
console.log(okta_api_key);
}
在两个导出的函数(它们是快速路由)中,我需要 var okta_api_key。我知道我可以通过在两个函数中查询它们来获取它们,因为它们是异步函数,我可以在那里使用 await,但是每次都查询它感觉很愚蠢(因为它永远不会改变)。
我该如何管理?我知道我可以这样做:
var okta_api_key;
(async () => {
okta_api_key = await <getting key async>
})()
但这也感觉不对劲。。
有没有办法制作某种大型函数,即异步,并导出这两个函数?换句话说:我如何在文件(模块)的顶层使用等待。它不需要在顶层(这是不可能的),而是某种方法可以让我的“顶层”变量暴露给我的导出函数。
编辑:其他一些用例,因为我得到了将其放入配置文件的建议。是的,对于这个是可能的,但是例如:我有一些其他的 api 密钥,它在每次启动时从服务本身获取他的访问令牌(因为它过期)。该令牌无法存储在配置文件中,因此我需要一些异步工作来获取该值。我知道 top-level-await 不起作用(甚至是不可取的),但我只想举一个例子,说明如果这是你的项目,你们将如何做到这一点:)