使用nconf和env的只读配置值

时间:2013-06-27 15:55:30

标签: node.js

我正在使用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}

我检查了stores的{​​{1}}属性,似乎表明nconf变量是只读的?

env

有没有办法允许在运行时修改通过console.log(nconf.stores); /** * { env: * { type: 'env', * store: { foo: [Object] }, * mtimes: { 'foo': 1372348332705 }, * readOnly: true, <-- here * loadFrom: null, * whitelist: * ... 变量设置的变量?如果我设置使用env文件设置的值,我可以毫无问题地修改值。

任何帮助非常感谢: - )

1 个答案:

答案 0 :(得分:1)

以下是我解决这个问题的方法

nconf.stores.env.readOnly = false;
nconf.set('foo', 789);
nconf.stores.env.readOnly = true;
console.log(nconf.get()); // {"foo":789,"bar":356}

希望有所帮助。