我可以将当前的nconfconfiguration转储到一个对象吗?
在nconf
有没有办法将所有商店的所有密钥都收集到一个对象中?
想象一下,我有这个小脚本:
assert = require('assert'); nconf = require('nconf'); nconf.argv().env().defaults({'C': 3}); assert.equal(nconf.get('A'), 1); assert.equal(nconf.get('B'), 2); assert.equal(nconf.get('C'), 3); assert.deepEqual({'A':1, 'B':2, 'C':3}, nconf.X); // <-- What's X?
我跟着跑
A=1 node script.js -B 2
有没有nconf.X
通过testing? 我甚至决定列出所有configuration的键。
是的,以获得对象,你可以做以下;
nconf.get();
它会失败的testing,因为argv将与execstring和env将有更多的variables,虽然。
您可以使用以下方式将env通话列入白名单
nconf.env({whitelist: 'A'});
此外,默认值在结果输出中添加一个值为“literal”的“type”。
对于通过testing你可以使用这个;
var assert = require('assert'), nconf = require('nconf'); nconf.argv().env({whitelist: ['A']}).defaults({'C': 3}); assert.equal(nconf.get('A'), 1); assert.equal(nconf.get('B'), 2); assert.equal(nconf.get('C'), 3); var object = nconf.get(); delete object.type; delete object['$0']; delete object['_']; assert.deepEqual({'A':1, 'B':2, 'C':3}, object);