我正在使用node-config模块获取mongo连接字符串和jwt密钥。
例如:
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中设置的,但node-config不会查看custom-environment-variables.json
中设置的值。我可以更改NODE_ENV并获取相关的json文件的硬编码值,但是从未使用过环境变量,这似乎与文档相矛盾
答案 0 :(得分:1)
您可以在Heroku中配置变量on this way
答案 1 :(得分:0)
我有同样的问题。从heroku的键中删除了连字符,以便从自定义环境变量读取数据。
so custom-environment-variables.json:
{
"jwtPrivateKey": "video-app_jwtPrivateKey",
"db": "video-app_db"
}
成为:
{
"jwtPrivateKey": "videoapp_jwtPrivateKey",
"db": "videoapp_db"
}
Heroku docs:
配置var策略
- Config var键应仅使用字母数字字符和下划线字符(_),以确保所有用户都可以访问它们 编程语言。 配置var键不应包含连字符 字符。
- 每个应用的配置var数据(所有键和值的组合)不能超过32kb。
- 配置var键不应以双下划线(__)开头。
- 除非由Heroku平台本身设置,否则配置变量的密钥不应以HEROKU_开头。
答案 2 :(得分:0)
所以,我遇到了同样的问题:我部署了我的应用程序,在Heroku中设置了环境变量,但是没有任何效果(不同于本地机器,一切都很好)。
似乎问题出在我不小心将所有node_modules
文件夹添加到了git中。发生这种情况的原因是,在进行首次提交后(如果我没做错的话)我创建了一个.gitignore
文件。
我所做的对我有用:
我从git中删除了node_modules
并已提交/推送了对Heroku的更改:
git rm -rf node_modules
然后提交并推送。
这是我收到的错误消息:
错误:/app/node_modules/bcrypt/lib/binding/bcrypt_lib.node:无效的ELF标头
我花了两天时间才弄清楚。
希望对您有所帮助。