Coder Social home page Coder Social logo

node-apollo's Introduction

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

node-apollo's People

Contributors

tsui66 avatar greatbsky avatar bangbang93 avatar dishuihengxin avatar wjx8382 avatar wsgfz avatar

Stargazers

赵梓宇 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.