14

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テストに合格するものはありますか?構成されたすべてのキーを一覧表示することもできます。

4

1 に答える 1

21

はい、次のようにしてオブジェクトを取得できます。

nconf.get();

ただし、argvはexec文字列であり、envにはさらに多くの変数があるため、テストに失敗します。

次を使用して env 呼び出しをホワイトリストに登録できます

nconf.env({whitelist: 'A'});

また、デフォルトでは、値「リテラル」を持つ「タイプ」が結果の出力に追加されます。

合格するテストの場合、これを使用できます。

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);
于 2012-11-23T02:23:52.173 に答える