apollo-client-node

0.1.2 • Public • Published

配置中心 Apollo 的 Node.js 版本 SDK

使用说明

  1. npm install
npm install apollo-client-node --save
  1. require && init
const apollo = require('apollo-client-node');
apollo.init({
    basePath: '[配置获取接口链接前缀部分]', //必填,形如:https://apollo-config-dev.example.com
    appId: '[项目AppId]', //必填
    clusterName: '[集群名称]', //选填,默认为:default
    namespaces: '[命名空间数组]', //选填,默认为:['application']
    cachePath: '[配置缓存文件的路径]', //选填,默认为:os.tmpdir() + '/apollo_cache'
});
  1. watch
const apollo = require('apollo-client-node');

//设置配置,与 init() 保持一致,若 watch() 的 apollo 是已经初始化过了,则可跳过设置配置
apollo.setOptions({
    basePath: '[配置获取接口链接前缀部分]', //必填,形如:https://apollo-config-dev.example.com
    appId: '[项目AppId]', //必填
    clusterName: '[集群名称]', //选填,默认为:default
    namespaces: '[命名空间数组]', //选填,默认为:['application']
    cachePath: '[配置缓存文件的路径]', //选填,默认为:os.tmpdir() + '/apollo_cache'
});

apollo.watch();
  1. use config
const apollo = require('apollo-client-node');

console.log(apollo.get('config-key'));
console.log(apollo.getAll());

集成到 eggjs 框架

  1. npm install
npm install apollo-client-node --save
  1. create init script
// scripts/init-apollo.js

const apollo = require('apollo-client');

apollo.init({
    basePath: process.env.APOLLO_BASE_PATH,
    appId: process.env.APOLLO_APP_ID,
});
  1. run init-apollo.js before eggjs cluster (package.json)
//package.json

{
    ...
    "scripts": {
        "start": "npm stop && APOLLO_BASE_PATH=https://apollo-config.example.com APOLLO_APP_ID=app-id-xxx node scripts/init-apollo.js && eggctl start --daemon --title=egg-server-example",
        "start:release": "npm stop && APOLLO_BASE_PATH=https://apollo-config.example.com APOLLO_APP_ID=app-id-xxx node scripts/init-apollo.js && eggctl start --daemon --title=egg-server-example-release",
        "stop": "egg-scripts stop --title=egg-server-example",
        "stop:release": "egg-scripts stop --title=egg-server-example-release",
        "dev": "APOLLO_BASE_PATH=https://apollo-config-dev.example.com APOLLO_APP_ID=app-id-xxx node scripts/init-apollo.js && egg-bin dev",
        ...
    }
    ...
}
  1. load & use config
// config/config.default.js

const apollo = require('apollo-client');
const cachePath = ''; //选填,默认为:os.tmpdir() + '/apollo_cache'
apollo.loadLocalConfig(cachePath);

module.exports = {
  logger: {
    dir: apollo.get('LOGGER_DIR'),
  },
};

/apollo-client-node/

    Package Sidebar

    Install

    npm i apollo-client-node

    Weekly Downloads

    0

    Version

    0.1.2

    License

    MIT

    Unpacked Size

    10.7 kB

    Total Files

    6

    Last publish

    Collaborators

    • mutou