Skip to content

nacos-group/nacos-sdk-nodejs

Repository files navigation

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 handler(optional,remove 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

About

nacos node.js sdk client

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors