微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在配置模块从 default.json 读取配置之前在节点中设置环境变量

如何解决在配置模块从 default.json 读取配置之前在节点中设置环境变量

JS 和 node 比较新,

要求: 需要在加载配置模块之前从安全存储中读取它后设置环境变量。

详情: 我们有一个问题,在配置模块启动并使用 default.js 分配值之前,我们需要从哪里读取机密存储中的机密并使其可用于节点环境。

我尝试将 express 应用程序设置和初始化分开,并尝试读取这些步骤之间的秘密,但无济于事。

app.js -> Setup the app

index.js -> 
// Setup the environments with the secrets
import config from 'config'
import {app_init} from './app' // Setting up the express app

// Now setting up the env variables
process.env.DB_HOST = 'MyDbHost'
process.env.DB_PASS = 'DBPass' // This will be read from the secret store

log.info(`DB_HOST used in ENV: ${process.env.DB_HOST}`) // Prints the right value
log.info(`DB_HOST used in config: ${config.database.host}`) // Prints undefined

无论如何,有没有办法在 config 模块读取机密之前将它们注入到 env 中?

如果您需要更多信息,请告诉我。

解决方法

查看配置文档,尤其是 here 可以使用延迟配置和使用完整的 nodejs 功能来创建配置。


就我而言,我计划从商店读取机密并将它们作为环境变量发布。如果我看到这样做的挑战,我会发布。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。