Node-config 不会在 Heroku 中使用来自 custom-environment-variables.json 的变量
Node-config won't use variables from custom-environment-variables.json in Heroku
我正在为 mongo 连接字符串和 jwt 密钥使用 node-config 模块。
例如:
if(!config.get('jwtPrivateKey')){
throw new Error('FATAL ERROR: jwtPrivateKey is not defined');
我的 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 中设置的,但节点配置不会查看 custom-environment-variables.json
中设置的值。我可以更改 NODE_ENV 并获取相关 json 文件的硬编码值,但从未使用过环境变量,这似乎与文档相矛盾
您可以在 Heroku
中配置变量 on this way
我遇到了同样的问题。从 custom-environment-variables 中读取 heroku 需要从键中删除连字符。
所以custom-environment-variables.json:
{
"jwtPrivateKey": "video-app_jwtPrivateKey",
"db": "video-app_db"
}
变为:
{
"jwtPrivateKey": "videoapp_jwtPrivateKey",
"db": "videoapp_db"
}
Heroku docs:
Config var policies
- Config var keys should use only alphanumeric characters and the underscore character (_) to ensure that they are accessible from all
programming languages. Config var keys should not include the hyphen
character.
- Config var data (the combination of all keys and values) cannot exceed 32kb for each app.
- Config var keys should not begin with a double underscore (__).
- A config var’s key should not begin with HEROKU_ unless it is set by the Heroku platform itself.
所以,我遇到了同样的问题:我部署了我的应用程序,在 Heroku 中设置了环境变量,但没有任何效果(不像我的本地机器一切正常)。
似乎问题是我不小心将所有 node_modules
文件夹添加到 git。发生这种情况是因为我在初始提交后创建了一个 .gitignore
文件(如果我做对了)。
我所做的对我有用:
我从 git 中删除了 node_modules
并且 committed/pushed 更改为 Heroku:
git rm -rf node_modules
然后提交并推送。
这是我收到的错误消息:
Error: /app/node_modules/bcrypt/lib/binding/bcrypt_lib.node: invalid ELF header
我花了两天时间弄明白了。
希望对你有帮助。
我正在为 mongo 连接字符串和 jwt 密钥使用 node-config 模块。
例如:
if(!config.get('jwtPrivateKey')){
throw new Error('FATAL ERROR: jwtPrivateKey is not defined');
我的 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 中设置的,但节点配置不会查看 custom-environment-variables.json
中设置的值。我可以更改 NODE_ENV 并获取相关 json 文件的硬编码值,但从未使用过环境变量,这似乎与文档相矛盾
您可以在 Heroku
中配置变量 on this way我遇到了同样的问题。从 custom-environment-variables 中读取 heroku 需要从键中删除连字符。
所以custom-environment-variables.json:
{
"jwtPrivateKey": "video-app_jwtPrivateKey",
"db": "video-app_db"
}
变为:
{
"jwtPrivateKey": "videoapp_jwtPrivateKey",
"db": "videoapp_db"
}
Heroku docs:
Config var policies
- Config var keys should use only alphanumeric characters and the underscore character (_) to ensure that they are accessible from all programming languages. Config var keys should not include the hyphen character.
- Config var data (the combination of all keys and values) cannot exceed 32kb for each app.
- Config var keys should not begin with a double underscore (__).
- A config var’s key should not begin with HEROKU_ unless it is set by the Heroku platform itself.
所以,我遇到了同样的问题:我部署了我的应用程序,在 Heroku 中设置了环境变量,但没有任何效果(不像我的本地机器一切正常)。
似乎问题是我不小心将所有 node_modules
文件夹添加到 git。发生这种情况是因为我在初始提交后创建了一个 .gitignore
文件(如果我做对了)。
我所做的对我有用:
我从 git 中删除了 node_modules
并且 committed/pushed 更改为 Heroku:
git rm -rf node_modules
然后提交并推送。
这是我收到的错误消息:
Error: /app/node_modules/bcrypt/lib/binding/bcrypt_lib.node: invalid ELF header
我花了两天时间弄明白了。
希望对你有帮助。