README.md

    NPM version David deps npm download Build Status

    node-apollo

    携程Apollo配置中心node SDK.

    Install

    $ npm i node-apollo --save-dev

    Node.js >= v7.6.0 required.

    Features

    • ︎ 适用eggjs(egg-apollojs), thinkjs等docker部署项目
    • ︎ 适用自己手动搭建的服务,可直接读取JSON格式的配置
    • ︎ 增加支持http/https协议请求

    Usage

    Methods

    apollo# remoteConfigServiceFromCache(config)

      const config = {
        configServerUrl: 'http://example.com',   
        // configServerUrl: 'https://example.com', // Support https
        appId: '<appId>',
        clusterName: 'default',
        namespaceName: [ 'namespaceName1', 'namespaceName2' ], // n1的配置会被n2配置覆盖
        // clientIp: '',
        };
      const result = await apollo.remoteConfigServiceFromCache(config);

    NOTE: 通过带缓存的Http接口从Apollo读取配置,详情请参考Apollo开放平台.

    apollo# remoteConfigServiceSkipCache(config)

      const config = {
        configServerUrl: 'http://example.com', 
        // configServerUrl: 'https://example.com', // Support https
        appId: '<appId>',
        clusterName: 'default',
        namespaceName: [ 'namespaceName1', 'namespaceName2' ], // n1的配置会被n2配置覆盖
        // clientIp: '', // optional
        // releaseKey: '', // optional
        };
      const result = await apollo.remoteConfigServiceSkipCache(config);

    NOTE: 通过不带缓存的Http接口从Apollo读取配置,详情请参考Apollo开放平台.

    apollo# remoteConfigService(config)

      const config = {
          configServerUrl: 'http://example.com',  
          // configServerUrl: 'https://example.com',  // Support https
          appId: '<appId>',
          clusterName: 'default',
          namespaceName: '',  //no surport multi namespace name, optional
          apolloEnv: 'dev',
          token: '<apollo access token>', // required
          // clientIp: '',
        };
      const result = await apollo.remoteConfigService(config);

    NOTE: 读取携程Apollo配置,调用第三方应用接入Apollo开放平台, 详情请参考Apollo开放平台.

    apollo# createEnvFile(envConfig)

      const envConfig = {
          mongoose: 'mongo://127.0.0.1:27017',
          appId: '<appId>',
        };
      apollo.createEnvFile(envConfig);

    NOTE: 生成环境变量文件,常用于docker化项目,详细请参考example.

    apollo# setEnv()

    apollo.setEnv();

    NOTE: 注入环境变量到process.env, 详情请参考dotenv.

    TODO

    • [x] 支持局部配置热更新

    NOTE: 不支持热更新,具体原因和方案请参考:关于eggjs热部署问题

    License

    MIT

    项目简介

    当前项目暂无项目简介

    发行版本

    当前项目没有发行版本

    贡献者 9

    开发语言

    • JavaScript 97.6 %
    • Dockerfile 2.4 %