基于 qconf 的简易封装。
npm install @blued-core/qconf目前除mysql配置以外,其余结构都可以简写为key: value,而不需要key: { qconf: value }。
import{Qconf}from'@blued/qconf'constconfigs={mysqlConf: {qconf: 'XXX',// qconf 路径 ⚠️ 无需包涵 /master /slave 的字眼database: 'XXX',// optional 数据库 databasemodelPath: 'XXX',// optional sequelize 模型路径},redisConf: {qconf: 'XXX',// qconf 路径},normalHost: {qconf: 'XXX',// qconf 路径},normalConf: 'XXX',// qconf 路径redisStringConf: 'XXX',normalStringHost: 'XXX',normalStringConf: 'XXX'}constqconf=newQconf(config)// 可选的 flag 参数用于使用不同环境下的配置文件qconf.flag='production'qconf.getConf('mysqlConf')除了 MySQL 相关的配置外,其他的都可以直接简写为
key: value而不需要携带qconf属性。
获取一个
key所对应的conf,key必须存在于实例化qconf时传入的configs。
如不存在则会抛出异常can not found conf with key: [key]。
qconf.getConf('key')// => stringqconf.getHost('key')// => string根据
qconf路径获取对应的参数
qconf.getQconfConf('/qconf/xxx/key')// => stringqconf.getQconfHost('/qconf/xxx/key')// => stringqconf.getQconfAllHost('/qconf/xxx/key')// => string[]根据传入的
key获取 redis 配置
qconf.getRedisConf('key')// => { host: 'XXX', port: '1234' }根据传入的
key获取 mysql 配置
qconf.getMysqlConf('key')// 返回值如下{masterHost: 'XXX',// 主库地址slaveHost: ['XXX','XXX'],// 从库地址username: 'XXX',// 用户名password: 'XXX',// 密码database: 'XXX'||undefined,// 数据库modelPath: 'XXX'||undefined,// sequelize 对应的模型地址}