当NODE_ENV设置为'test.‘时,Node-config的定制环境变量.json似乎没有覆盖default.json中的值。下面是一个非常简单的配置:
config/default.json:
{
"jwtPrivateKey": "defaultkey"
}config/custom-environment-variables.json:
{
"jwtPrivateKey": "JWTPRIVATEKEY"
}config/test.json:
{}app.js:
console.log('NODE_ENV': + process.env.NODE_ENV);
console.log('Env: ' + process.env.JWTPRIVATEKEY);
console.log("Config: " + config.get('jwtPrivateKey'));这是按照预期工作的:我得到了NODE_ENV=undefined (因此node-config将缺省为'development'),接下来的两行都输出了环境变量中设置的正确值。然而,如果我尝试用Jest运行一个简单的测试,打印同样的:
tests/ome.test.js:
test('Some Test', () => {
console.log('NODE_ENV:' + process.env.NODE_ENV);
console.log('Env: ' + process.env.JWTPRIVATEKEY);
console.log("Config: " + config.get('jwtPrivateKey'));
});我在环境variable...but Config=defaultKey中设置了NODE_ENV=test,Env=the正确的值。
换句话说:尽管它显示环境变量被设置为正确的值,但是node-config似乎没有通过custom- environment -variables.json将其引入。
这是一个bug吗?我翻遍了文档,但找不到造成这种差异的任何原因。
发布于 2019-05-29 12:15:40
您是否碰巧在您的配置文件夹中有local.json文件?如果是这样的话,这是一个覆盖所有内容的特殊文件类型,因此您的值可能与此配置的值完全匹配。NODE_ENV变量似乎不会影响local.json是否最后加载。
我刚刚遇到了这个问题,临时重命名/删除local.json解决了我的问题。
发布于 2021-01-25 03:12:20
https://stackoverflow.com/questions/56084804
复制相似问题