nconf-etcd2

An Etcd2 backend for nconf


Keywords
etcd, etcd2, nconf
License
MIT
Install
npm install nconf-etcd2@1.4.0

Documentation

nconf-etcd2 Build Status

An nconf backend store for Etcd2

npm install nconf nconf-etcd2 --save

An ETCD2 backend for nconf

var Store = require('nconf-etcd2')
var s = new Store({namespace:'test'});
var assert = require('assert')

s.load(function(err,data){
	assert.equal( err, null )
	s.set('a:b:c:d',2);
	s.save(function( err ){
		s.store = {};

		s.load( function(e,d){
			assert.equal( 2,~~s.get('a:b:c:d') );
			done();
		});
	});
});

Usage with nconf

var nconf = require('nconf');
var Etcd  = require('nconf-etcd2'); // tries to attach to the nconf instance

nconf.use('etcd', { /* options */ });
nconf.load(console.log);

Support For Syncronous Methods

var nconf = require('nconf');
var Etcd  = require('nconf-etcd2'); // tries to attach to the nconf instance

nconf.use('etcd', { namespace:'test', hosts:['192.168.0.1:4001', '10.50.5.1:4001']});
nconf.load();
nconf.set( 'a:b:c', 1);
nconf.save(); // Saved to etc!

Nest Namespaces

var nconf = require('nconf');
var Etcd  = require('nconf-etcd2'); // tries to attach to the nconf instance

nconf.use('etcd', { namespace:'test:foo', hosts:['192.168.0.1:4001', '10.50.5.1:4001']});
nconf.load();

nconf.get( 'a:b:c');
nconf.save(); // Saved to etc!

Custom Separators

var nconf = require('nconf');
var Etcd  = require('nconf-etcd2'); // tries to attach to the nconf instance

nconf.use('etcd', { namespace:'test-nested', logicalSeparator:'-' hosts:['192.168.0.1:4001', '10.50.5.1:4001']});
nconf.load();
nconf.set( 'a-b-c', 1);
nconf.save(); // Saved to etc!