我正在使用 nconf处理我的应用程序中的配置.我设置它的方式如下: nconf.env({ separator: '__', whitelist: ['foo', 'bar']}).file('config.json') 如果它们是通过环境变量获得的,我似乎无法修改它们.例如
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文件设置的值,我可以毫无问题地修改值.
任何帮助非常感谢:-)
这是我解决这个问题的方法nconf.stores.env.readOnly = false; nconf.set('foo', 789); nconf.stores.env.readOnly = true; console.log(nconf.get()); // {"foo":789,"bar":356}
希望有所帮助.