我可以将当​​前的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);