1.0.1 • Published 5 years ago
kk-nacos v1.0.1
nacos-sdk-nodejs
Nacos Node.js SDK
Install
npm install nacos --saveVersion Mapping
| Node.js SDK \ Nacos Server | 0.x.0 | 1.0.0 | 
|---|---|---|
| 1.x | √ | |
| 2.x | √ | 
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
  namespace: 'public',
});
await client.ready();
const serviceName = 'nodejs.test.domain';
// registry instance
await client.registerInstance(serviceName, {
  ip: '1.1.1.1',
  port: 8080,
});
await client.registerInstance(serviceName, {
  ip: '2.2.2.2',
  port: 8080,
});
// subscribe instance
client.subscribe(serviceName, hosts => {
  console.log(hosts);
});
// deregister instance
await client.deregisterInstance(serviceName, {
  ip: '1.1.1.1',
  port: 8080,
});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, instance, [groupName])Register an instance to service.- serviceName {String} Service name
- instance {Instance}- ip {String} IP of instance
- port {Number} Port of instance
- weight {Number} weight of the instance, default is 1.0
- ephemeral {Boolean} active until the client is alive, default is true
- clusterName {String} Virtual cluster name
 
- groupName {String} group name, default is DEFAULT_GROUP
 
- deregisterInstance(serviceName, ip, port, [cluster])Delete instance from service.- serviceName {String} Service name
- instance {Instance}- ip {String} IP of instance
- port {Number} Port of instance
- weight {Number} weight of the instance, default is 1.0
- ephemeral {Boolean} active until the client is alive, default is true
- clusterName {String} Virtual cluster name
 
- groupName {String} group name, default is DEFAULT_GROUP
 
- getAllInstances(serviceName, [groupName], [clusters], [subscribe])Query instance list of service.
- 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 {Function} 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 {Function} 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.