• Stars
    star
    291
  • Rank 141,865 (Top 3 %)
  • Language
    TypeScript
  • License
    Apache License 2.0
  • Created almost 6 years ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

nacos node.js sdk client

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

More Repositories

1

nacos-docker

This project contains a Docker image meant to facilitate the deployment of Nacos .
Shell
1,405
star
2

nacos-sdk-go

Nacos client in Golang
Go
1,119
star
3

nacos-examples

Nacos Examples
Java
953
star
4

r-nacos

Nacos server re-implemented in Rust.
Rust
812
star
5

nacos-spring-boot-project

Nacos ECO Project for Spring Boot
Java
785
star
6

nacos-spring-project

Nacos ECO Project for Spring Framework
Java
755
star
7

nacos-k8s

This project contains a Nacos Docker image meant to facilitate the deployment of Nacos on Kubernetes using StatefulSets.
Go
595
star
8

nacos-sdk-csharp

This nacos csharp sdk
C#
420
star
9

nacos-sdk-python

nacos python sdk
Python
362
star
10

nacos-sync

Service Sync component
Java
292
star
11

nacos-sdk-cpp

C++ client for Nacos
C++
125
star
12

nacos-sdk-rust

nacos client for rust
Rust
117
star
13

grpc-java-registry-nacos

gRPC Nacos registry integration
Java
97
star
14

nacos-group.github.io

nacos-group.github.io
MDX
97
star
15

nacos-plugin

A collection of Nacos plug-ins, providing Nacos with pluggable plug-in capabilities, support for user customization and high scalability
Java
91
star
16

nacos-coredns-plugin

Nacos DNS-F Client Based On CoreDNS
Go
83
star
17

nacos-template

nacos-template include PPT template and knote
70
star
18

nginx-nacos-upstream

nginx nacos module. subscribe service and configuration from nacos instead of modifying and reloading nginx.conf
C
61
star
19

nacos-confd

Go
40
star
20

nacos-istio

Nacos integrate with Istio as a MCP server
Go
38
star
21

nacos-controller

nacos k8s controller
Go
25
star
22

dubbo-registry-nacos

Dubbo Registry support for Nacos
14
star
23

nacos-k8s-sync

A component for sync services between Nacos and Kubernetes.
Go
12
star
24

nacos-sdk-lua

Lua
12
star
25

nacos-activity

The documents presented in nacos activities
11
star
26

nacos-sdk-php

PHP
11
star
27

nacos-ctl

The controller command sdk for nacos
Java
7
star
28

logback-adapter

Java
5
star
29

acm2nacos-spring-cloud-example

Java
4
star
30

nacos-tutorial

Nacos 知行实验仓库
2
star
31

acm2nacos-java-example

Java
2
star
32

apollo-2-nacos-migration

Apollo迁移到Nacos的脚本工程
Java
1
star
33

nacos-logo

The logo files for nacos
1
star