首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在测试期间,Node-config自定义环境变量不会覆盖default.json

在测试期间,Node-config自定义环境变量不会覆盖default.json
EN

Stack Overflow用户
提问于 2019-05-11 05:02:13
回答 2查看 1.3K关注 0票数 2

当NODE_ENV设置为'test.‘时,Node-config的定制环境变量.json似乎没有覆盖default.json中的值。下面是一个非常简单的配置:

config/default.json:

代码语言:javascript
复制
{
  "jwtPrivateKey": "defaultkey"
}

config/custom-environment-variables.json:

代码语言:javascript
复制
{
 "jwtPrivateKey": "JWTPRIVATEKEY"
}

config/test.json:

代码语言:javascript
复制
{}

app.js:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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吗?我翻遍了文档,但找不到造成这种差异的任何原因。

EN

回答 2

Stack Overflow用户

发布于 2019-05-29 12:15:40

您是否碰巧在您的配置文件夹中有local.json文件?如果是这样的话,这是一个覆盖所有内容的特殊文件类型,因此您的值可能与此配置的值完全匹配。NODE_ENV变量似乎不会影响local.json是否最后加载。

我刚刚遇到了这个问题,临时重命名/删除local.json解决了我的问题。

票数 2
EN

Stack Overflow用户

发布于 2021-01-25 03:12:20

我也对此感到困惑,并搜索了所有不同的平台,最终从报告的node-config问题中获得了此链接。

dont use local

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56084804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档