{"_id":"@dalongrong/nacos","name":"@dalongrong/nacos","dist-tags":{"latest":"2.6.2"},"versions":{"2.6.2":{"name":"@dalongrong/nacos","version":"2.6.2","description":"nacos client main package","keywords":["nacos","cloud","native","eggjs","midwayjs"],"main":"dist/index.js","author":{"name":"czy88840616@gmail.com"},"dependencies":{"@dalongrong/nacos-config":"^2.6.2","@dalongrong/nacos-naming":"^2.6.2"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"^10.9.4","contributors":"^0.5.1","midway-bin":"^0.3.2","mm":"^2.4.1","pedding":"^1.1.0","tslint":"^5.11.0","typescript":"^3.2.2"},"engines":{"node":">= 8.0.0"},"scripts":{"autod":"midway-bin autod","lint":"tslint . --ext .ts","test":"npm run test-local","test-local":"TEST_REPORTER=spec midway-bin test --ts","cov":"TEST_REPORTER=spec midway-bin cov --ts","contributors":"contributors","ci":"npm run lint && npm run cov","build":"midway-bin build --ts"},"publishConfig":{"registry":"https://registry.npmjs.org/","access":"public"},"repository":{"type":"git","url":"git+https://github.com/nacos-group/nacos-sdk-nodejs.git"},"license":"Apache","bugs":{"url":"https://github.com/nacos-group/nacos-sdk-nodejs/issues"},"homepage":"https://github.com/nacos-group/nacos-sdk-nodejs#readme","gitHead":"eb009bdaa5949d4f90e18c6eacf66d6dcf907c96","_id":"@dalongrong/nacos@2.6.2","_nodeVersion":"19.9.0","_npmVersion":"lerna/3.22.1/node@v19.9.0+x64 (darwin)","dist":{"integrity":"sha512-rhUzGZUhB12Yu5OVMkZxlZBfUyudUyzHNOVuw2OU2wlTVE6Y776Sk0jExskBhaWyYJAtjF+ohOBdXQHCWtaFOQ==","shasum":"7346d8dcfca2f3c2d3349d52f88fda0e17653c46","tarball":"https://registry.npmjs.org/@dalongrong/nacos/-/nacos-2.6.2.tgz","fileCount":7,"unpackedSize":22817,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDxjJTOQ1c9noNlY3wfp2txGOf0ZYR3naP0BmYdgpqK9gIhAP1mB7rHhiUywNgJI0e9rEMPX5g4Md9+ojTjT1zjvbBX"}]},"_npmUser":{"name":"dalongrong","email":"1141591465@qq.com"},"directories":{},"maintainers":[{"name":"dalongrong","email":"1141591465@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nacos_2.6.2_1746350511191_0.2636809579114616"},"_hasShrinkwrap":false}},"time":{"created":"2025-05-04T09:21:51.083Z","2.6.2":"2025-05-04T09:21:51.373Z","modified":"2025-05-04T09:21:51.698Z"},"maintainers":[{"name":"dalongrong","email":"1141591465@qq.com"}],"description":"nacos client main package","homepage":"https://github.com/nacos-group/nacos-sdk-nodejs#readme","keywords":["nacos","cloud","native","eggjs","midwayjs"],"repository":{"type":"git","url":"git+https://github.com/nacos-group/nacos-sdk-nodejs.git"},"author":{"name":"czy88840616@gmail.com"},"bugs":{"url":"https://github.com/nacos-group/nacos-sdk-nodejs/issues"},"license":"Apache","readme":"# nacos-sdk-nodejs\n\n[![NPM version][npm-image]][npm-url]\n[![build status][travis-image]][travis-url]\n[![David deps][david-image]][david-url]\n[![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg)](https://lernajs.io/)\n\n[npm-image]: https://img.shields.io/npm/v/nacos.svg?style=flat-square\n[npm-url]: https://npmjs.org/package/nacos\n[travis-image]: https://img.shields.io/travis/nacos-group/nacos-sdk-nodejs.svg?style=flat-square\n[travis-url]: https://travis-ci.org/nacos-group/nacos-sdk-nodejs\n[david-image]: https://img.shields.io/david/nacos-group/nacos-sdk-nodejs.svg?style=flat-square\n[david-url]: https://david-dm.org/nacos-group/nacos-sdk-nodejs\n\n\n[Nacos](https://nacos.io/en-us/) Node.js SDK\n\n## Install\n\n```bash\nnpm install nacos --save\n```\n\n## Version Mapping\n\nNode.js SDK \\ Nacos Server | 0.x.0 | 1.0.0 |\n---                        |  ---  |  ---  |\n1.x                        |   √   |       |\n2.x                        |       |   √   |\n\n## Usage\n\n### Service Discovery\n\n```js\n'use strict';\n\nconst NacosNamingClient = require('nacos').NacosNamingClient;\nconst logger = console;\n\nconst client = new NacosNamingClient({\n  logger,\n  serverList: '127.0.0.1:8848', // replace to real nacos serverList\n  namespace: 'public',\n});\nawait client.ready();\n\nconst serviceName = 'nodejs.test.domain';\n\n// registry instance\nawait client.registerInstance(serviceName, {\n  ip: '1.1.1.1',\n  port: 8080,\n});\nawait client.registerInstance(serviceName, {\n  ip: '2.2.2.2',\n  port: 8080,\n});\n\n// subscribe instance\nclient.subscribe(serviceName, hosts => {\n  console.log(hosts);\n});\n\n// deregister instance\nawait client.deregisterInstance(serviceName, {\n  ip: '1.1.1.1',\n  port: 8080,\n});\n```\n\n### Config Service\n\n```js\nimport {NacosConfigClient} from 'nacos';   // ts\nconst NacosConfigClient = require('nacos').NacosConfigClient; // js\n\n// for find address mode\nconst configClient = new NacosConfigClient({\n  endpoint: 'acm.aliyun.com',\n  namespace: '***************',\n  accessKey: '***************',\n  secretKey: '***************',\n  requestTimeout: 6000,\n});\n\n// for direct mode\nconst configClient = new NacosConfigClient({\n  serverAddr: '127.0.0.1:8848',\n});\n\n// get config once\nconst content= await configClient.getConfig('test', 'DEFAULT_GROUP');\nconsole.log('getConfig = ',content);\n\n// listen data changed\nconfigClient.subscribe({\n  dataId: 'test',\n  group: 'DEFAULT_GROUP',\n}, content => {\n  console.log(content);\n});\n\n// publish config\nconst content= await configClient.publishSingle('test', 'DEFAULT_GROUP', '测试');\nconsole.log('getConfig = ',content);\n\n// remove config\nawait configClient.remove('test', 'DEFAULT_GROUP');\n```\n\nNacosConfigClient options: [ClientOptions](https://github.com/nacos-group/nacos-sdk-nodejs/blob/master/packages/nacos-config/src/interface.ts#L247)\n\ndefault value: [ClientOptions default value](https://github.com/nacos-group/nacos-sdk-nodejs/blob/master/packages/nacos-config/src/const.ts#L34)\n\n## APIs\n\n### Service Discovery\n\n- `registerInstance(serviceName, instance, [groupName])`  Register an instance to service.\n  - serviceName {String} Service name\n  - instance {Instance}\n    - ip {String} IP of instance\n    - port {Number} Port of instance\n    - [weight] {Number} weight of the instance, default is 1.0\n    - [ephemeral] {Boolean} active until the client is alive, default is true\n    - [clusterName] {String} Virtual cluster name\n  - [groupName] {String} group name, default is `DEFAULT_GROUP`\n- `deregisterInstance(serviceName, ip, port, [cluster])`  Delete instance from service.\n  - serviceName {String} Service name\n  - instance {Instance}\n    - ip {String} IP of instance\n    - port {Number} Port of instance\n    - [weight] {Number} weight of the instance, default is 1.0\n    - [ephemeral] {Boolean} active until the client is alive, default is true\n    - [clusterName] {String} Virtual cluster name\n  - [groupName] {String} group name, default is `DEFAULT_GROUP`\n- `getAllInstances(serviceName, [groupName], [clusters], [subscribe])`  Query instance list of service.\n  - serviceName {String} Service name\n  - [groupName] {String} group name, default is `DEFAULT_GROUP`\n  - [clusters] {String} Cluster names\n  - [subscribe] {Boolean} whether subscribe the service, default is true\n- `getServerStatus()` Get the status of nacos server, 'UP' or 'DOWN'.\n- `subscribe(info, listener)` Subscribe the instances of the service\n  - info {Object}|{String} service info, if type is string, it's the serviceName\n  - listener {Function} the listener function\n- `unSubscribe(info, [listener])` Unsubscribe the instances of the service\n  - info {Object}|{String} service info, if type is string, it's the serviceName\n  - listener {Function} the listener function, if not provide, will unSubscribe all listeners under this service\n\n### Config Service\n\n- `async function getConfig(dataId, group)`\n  - {String} dataId - data id\n  - {String} group - group name\n- `async function publishSingle(dataId, group, content)`\n  - {String} dataId - data id\n  - {String} group - group name\n  - {String} content - content you want to publish\n- `async function remove(dataId, group)`\n  - {String} dataId - data id\n  - {String} group - group name\n- `function subscribe(info, listener)`\n  - {Object} info\n    - {String} dataId - data id\n    - {String} group - group name\n  - {Function} listener - callback handler\n- `function unSubscribe(info, [listener])`\n  - {Object} info\n    - {String} dataId - data id\n    - {String} group - group\n  - {Function} listener - callback handler（optional，remove all listener when it is null）\n\n## Questions & Suggestions\n\nPlease let us know how can we help. Do check out [issues](https://github.com/nacos-group/nacos-sdk-nodejs/issues) for bug reports or suggestions first.\n\nPR is welcome.\n\nnacos-sdk-nodejs ding group ： 44654232\n![image](https://user-images.githubusercontent.com/17695352/172582005-c661e2a0-49fa-425c-bf99-785bb7cd4dc1.png)\n\n\n## License\n\n[Apache License V2](LICENSE)\n","readmeFilename":"README.md","_rev":"1-42a2d4433e813d0b2ad5a101fa38bcb4"}