nacos-node
v2.0.1
Published
nacos client main package
Downloads
5
Maintainers
Readme
nacos-sdk-nodejs
Nacos Node.js SDK
Install
npm install nacos --save
Usage
Service Discovery
'use strict';
const NacosNamingClient = require('nacos').NacosNamingClient;
const logger = console;
const client = new NacosNamingClient({
logger,
serverList: '127.0.0.1:8848', // replace to real nacos serverList
});
await client.ready();
const serviceName = 'nodejs.test.domain';
// registry instance
await client.registerInstance(serviceName, '1.1.1.1', 8080, 'NODEJS');
await client.registerInstance(serviceName, '2.2.2.2', 8080, 'NODEJS');
// subscribe instance
client.subscribe(serviceName, hosts => {
console.log(hosts);
});
// deregister instance
await client.deregisterInstance(serviceName, '1.1.1.1', 8080, 'NODEJS');
Config Service
import {NacosConfigClient} from 'nacos'; // ts
const NacosConfigClient = require('nacos').NacosConfigClient; // js
// for find address mode
const configClient = new NacosConfigClient({
endpoint: 'acm.aliyun.com',
namespace: '***************',
accessKey: '***************',
secretKey: '***************',
requestTimeout: 6000,
});
// for direct mode
const configClient = new NacosConfigClient({
serverAddr: '127.0.0.1:8848',
});
// get config once
const content= await configClient.getConfig('test', 'DEFAULT_GROUP');
console.log('getConfig = ',content);
// listen data changed
configClient.subscribe({
dataId: 'test',
group: 'DEFAULT_GROUP',
}, content => {
console.log(content);
});
// publish config
const content= await configClient.publishSingle('test', 'DEFAULT_GROUP', '测试');
console.log('getConfig = ',content);
// remove config
await configClient.remove('test', 'DEFAULT_GROUP');
NacosConfigClient options: ClientOptions
default value: ClientOptions default value
APIs
Service Discovery
registerInstance(serviceName, ip, port, [cluster])
Register an instance to service.- serviceName Service name
- ip IP of instance
- port Port of instance
- cluster Virtual cluster name
deregisterInstance(serviceName, ip, port, [cluster])
Delete instance from service.- serviceName Service name
- ip IP of instance
- port Port of instance
- cluster Virtual cluster name
getAllInstances(serviceName, [clusters])
Query instance list of service.- serviceName Service name
- clusters Cluster names
getServerStatus()
Get the status of nacos server, 'UP' or 'DOWN'.subscribe(info, listener)
Subscribe the instances of the service- info <Object | String> service info, if type is string, it's the serviceName
- listener the listener function
- unSubscribe(info, [listener]) Unsubscribe the instances of the service
- info <Object | String> service info, if type is string, it's the serviceName
- listener the listener function, if not provide, will unSubscribe all listeners under this service
Config Service
async function getConfig(dataId, group)
- {String} dataId - data id
- {String} group - group name
async function publishSingle(dataId, group, content)
- {String} dataId - data id
- {String} group - group name
- {String} content - content you want to publish
async function remove(dataId, group)
- {String} dataId - data id
- {String} group - group name
function subscribe(info, listener)
- {Object} info
- {String} dataId - data id
- {String} group - group name
- {Function} listener - callback handler
- {Object} info
function unSubscribe(info, [listener])
- {Object} info
- {String} dataId - data id
- {String} group - group
- {Function} listener - callback handler(optional,remove all listener when it is null)
- {Object} info
Questions & Suggestions
Please let us know how can we help. Do check out issues for bug reports or suggestions first.
PR is welcome.