我正在使用nconf来处理我应用程序中的配置。我设置它的方法如下:
nconf.env({
separator: '__',
whitelist: ['foo', 'bar']
})
.file('config.json')如果这些值是通过环境变量获得的,我似乎无法修改这些值。例如,
console.log(nconf.get()); // {"foo":123,"bar":356}
nconf.set('foo', 789);
console.log(nconf.get()); // {"foo":123,"bar":356}我检查了nconf的stores属性,它似乎表明env变量是只读的?
console.log(nconf.stores);
/**
* { env:
* { type: 'env',
* store: { foo: [Object] },
* mtimes: { 'foo': 1372348332705 },
* readOnly: true, <-- here
* loadFrom: null,
* whitelist:
* ...有没有办法允许在运行时修改通过env变量设置的变量?如果我设置了使用config.json文件设置的值,我就能够毫无问题地修改这些值。
非常感谢任何帮助:-)
发布于 2017-01-26 19:13:10
下面是我是如何解决这个问题的
nconf.stores.env.readOnly = false;
nconf.set('foo', 789);
nconf.stores.env.readOnly = true;
console.log(nconf.get()); // {"foo":789,"bar":356}希望这能有所帮助。
https://stackoverflow.com/questions/17347810
复制相似问题