Node-config 不会使用 Heroku 中的 custom-environment-variables.json 中的变量

2024-01-06

我正在使用 mongo 连接字符串和 jwt 键的节点配置模块。

例如:

if(!config.get('jwtPrivateKey')){
    throw new Error('FATAL ERROR: jwtPrivateKey is not defined');

My custom-environment-variables.json文件看起来像:

{
    "jwtPrivateKey": "video-app_jwtPrivateKey",
    "db": "video-app_db"
}

default.json

{
    "db": "default db",
    "jwtPrivateKey": "default key"
}

production.json

{
    "db": "production db",
    "jwtPrivateKey": "production key"
}

长话短说 - 尽管环境变量是在heroku中设置的,但node-config不会查看中设置的值custom-environment-variables.json。我可以更改 NODE_ENV 并获取相关 json 文件的硬编码值,但从未使用环境变量,这似乎与文档相矛盾


我遇到过同样的问题。需要从键中删除连字符,heroku 才能从自定义环境变量中读取。

所以自定义环境变量.json:

{
    "jwtPrivateKey": "video-app_jwtPrivateKey",
    "db": "video-app_db"
}

Becomes:

{
    "jwtPrivateKey": "videoapp_jwtPrivateKey",
    "db": "videoapp_db"
}

Heroku docs https://devcenter.heroku.com/articles/config-vars:

配置变量策略

  • 配置 var 键应仅使用字母数字字符和下划线字符 (_),以确保可以从所有 编程语言。配置变量键不应包含连字符 特点。
  • 每个应用程序的配置变量数据(所有键和值的组合)不能超过 32kb。
  • 配置 var 键不应以双下划线 (__) 开头。
  • 配置变量的键不应以 HEROKU_ 开头,除非它是由 Heroku 平台本身设置的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node-config 不会使用 Heroku 中的 custom-environment-variables.json 中的变量 的相关文章

随机推荐