The NacosConfigClient allows you to manage remote configurations, including publishing, retrieving, and subscribing to changes.
Basic Usage Example
const { NacosConfigClient } = require('nacos');
const configClient = new NacosConfigClient({
serverAddr: '127.0.0.1:8848',
namespace: 'public',
});
await configClient.ready();
// Publish config
await configClient.publishSingle('test', 'DEFAULT_GROUP', 'hello=world');
// Get config
const content = await configClient.getConfig('test', 'DEFAULT_GROUP');
// Subscribe to config changes
configClient.subscribe({ dataId: 'test', group: 'DEFAULT_GROUP' }, content => {
console.log('config changed:', content);
});
// Remove config
await configClient.remove('test', 'DEFAULT_GROUP');
const { NacosConfigClient } = require('nacos');
const configClient = new NacosConfigClient({
serverAddr: '127.0.0.1:8848',
namespace: 'public',
});
await configClient.ready();
// publish config
await configClient.publishSingle('test', 'DEFAULT_GROUP', 'hello=world');
// publish config with CAS (compare-and-set):
// succeeds only when the md5 of the current server-side config equals casMd5
const crypto = require('crypto');
const currentContent = await configClient.getConfig('test', 'DEFAULT_GROUP');
const casMd5 = crypto.createHash('md5').update(currentContent || '').digest('hex');
const published = await configClient.publishConfigCas('test', 'DEFAULT_GROUP', 'hello=nacos', casMd5);
console.log('cas publish:', published); // false when casMd5 mismatched
// get config
const content = await configClient.getConfig('test', 'DEFAULT_GROUP');
console.log('content:', content);
// subscribe to config changes (push notification)
configClient.subscribe({ dataId: 'test', group: 'DEFAULT_GROUP' }, content => {
console.log('config changed:', content);
});
// remove config
await configClient.remove('test', 'DEFAULT_GROUP');