nacos node.js sdk client
Go to file
Harry Chen 8a5568de77 v2.6.0 2023-12-14 10:43:15 +08:00
example chore: support nacos-sdk-nodejs(2.5.0) example and add auth example (#100) 2023-12-13 19:52:01 +08:00
packages v2.6.0 2023-12-14 10:43:15 +08:00
scripts chore: update 2021-01-26 13:31:44 +08:00
.gitignore chore: add ignore 2018-12-02 14:56:44 +08:00
.travis.yml feat: support nacos server v1.0.0 2019-05-07 12:35:03 +08:00
AUTHORS chore: ready for publish 2021-01-26 13:30:18 +08:00
CHANGELOG.md v2.0.1 2021-01-26 13:34:46 +08:00
LICENSE Initial commit 2018-11-05 10:23:07 +08:00
README.md Update README.md 2022-06-08 17:25:34 +08:00
lerna.json v2.6.0 2023-12-14 10:43:15 +08:00
package.json chore: update pkg.license => Apache-2.0 (#101) 2023-03-10 11:23:25 +08:00

README.md

nacos-sdk-nodejs

NPM version build status David deps lerna

Nacos Node.js SDK

Install

npm install nacos --save

Version 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.
    • serviceName {String} Service name
    • [groupName] {String} group name, default is DEFAULT_GROUP
    • [clusters] {String} Cluster names
    • [subscribe] {Boolean} whether subscribe the service, default is true
  • 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
  • function unSubscribe(info, [listener])
    • {Object} info
      • {String} dataId - data id
      • {String} group - group
    • {Function} listener - callback handleroptionalremove all listener when it is null

Questions & Suggestions

Please let us know how can we help. Do check out issues for bug reports or suggestions first.

PR is welcome.

nacos-sdk-nodejs ding group 44654232 image

License

Apache License V2