egg-apollos

0.0.6 • Public • Published

egg-apollos

NPM version

Install

$ npm i egg-apollos --save

Usage

// {app_root}/config/plugin.js
exports.apollo = {
  enable: true,
  package: 'egg-apollos'
}

Configuration

// apollo配置中心为项目添加指定的 Key:xxx_apollo(xxx_为自定义的配置前缀)
xxx_apollo = {
  interval: '1m',
  type: 'all'
}
// {app_root}/config/apollo.js
module.exports = {
  configServerUrl: process.env.configServerUrl,
  appId: 'node-test-1', // 配置中心命名和项目名称保持一致,
  clusterName: 'default',
  namespaceName: ['application', 'python.PostgreSQL', 'python.redis', 'python.ops']
}
// {app_root}/preload.js
// 初始化,加载参数配置到环境变量
 
'use strict'
const path = require('path')
 
require('egg-apollos').init(path.join(__dirname, '/config/apollo.js'))
// {app_root}/config/config.default.js
 
'use strict'
 
require('egg-apollos').apollo.setEnv()
 
// 正则过滤掉非xxx_前缀开头的环境变量
const setConfig = () => {
  const ret = {}
  Object.keys(process.env).forEach(key => {
    if (/^xxx_.+/g.test(key)) {
      let value = process.env[key]
      try {
        value = JSON.parse(process.env[key])
      } catch (err) {
        console.info(`[ apollos.setConfig ] - ${err}`)
      }
      ret[key.replace('xxx_', '')] = value
    }
  })
  return ret
}
 
module.exports = appInfo => {
  const config = (exports = {})
 
  // use for cookie sign key, should change to your own and keep security
  config.keys = appInfo.name + '_1530842725133_4230'
 
  // add your config here
  config.middleware = []
 
  Object.assign(config, setConfig())
  return config
}
// package.json
// 配置不同的configServerUrl 对应不同的环境
"dev": "set configServerUrl=http://127.0.0.1:8084&& node preload.js && egg-bin dev"
"debug": "set configServerUrl=http://127.0.0.1:8084&& node preload.js && egg-bin debug",
"start":"node preload.js && egg-scripts start"

Note

本项目参考: egg-apollojs,并对其定时器进行了动态改造,支持自定义拉取 apollo 配置的周期。

Example

Questions & Suggestions

Please open an issue here.

License

MIT

Package Sidebar

Install

npm i egg-apollos

Weekly Downloads

2

Version

0.0.6

License

MIT

Unpacked Size

17.3 kB

Total Files

11

Last publish

Collaborators

  • jsonma