README
apollo-node-client
Node.js Client for Apollo
install
$ npm install apollo-node-client --save
Examples
Usage
ConfigService
实例化 const { ConfigService } = require('apollo-node-client');
const service = new ConfigService({
configServerUrl: 'http://localhost:8080/',
appId: 'SampleApp',
clusterName: 'default',
secret: 'cf86d564d10a46d4a5989dfdeed3a3a2'
});
namespace
的配置(application
)
获取默认 const config = await service.getAppConfig();
config.getAllConfig(); // Map(1) { 'mysql.user' => 'root' }
console.log(config.getProperty('mysql.user')); // root
console.log(config.getProperty('mysql.missing'), 'default'); // default
properties
格式 namespace
的配置
获取 const config = await service.getConfig('application');
config.getAllConfig(); // Map(1) { 'mysql.user' => 'root' }
console.log(config.getProperty('mysql.user')); // root
console.log(config.getProperty('mysql.missing'), 'default'); // default
json
格式 namespace
的配置
获取 const config = await service.getConfig('config.json');
config.getAllConfig(); // { mysql: { user: 'root' } }
console.log(config.getProperty('mysql.user')); // root
console.log(config.getProperty('mysql.missing'), 'default'); // default
ip
指定灰度发布的服务 const config = await service.getConfig('application', '192.168.3.4');
config.getAllConfig(); // Map(1) { 'mysql.user' => 'root' }
console.log(config.getProperty('mysql.user')); // root
console.log(config.getProperty('mysql.missing'), 'default'); // default
监听配置变化事件
config.addChangeListener((changeEvent) => {
for (const key of changeEvent.changedKeys()) {
const change = changeEvent.getChange(key);
if (change) {
console.log(`namespace: ${change.getNamespace()},
changeType: ${change.getChangeType()},
propertyName: ${change.getPropertyName()},
oldValue: ${change.getOldValue()},
newValue: ${change.getNewValue()}`);
}
}
});