@lml_taf/taf-config
v2.3.3
Published
TAF 框架中用于获取服务配置文件
Downloads
3
Readme
这个模块主要是node来调用taf.tafconfig.ConfigObj这个taf服务(这个taf服务的jce见Config.jce),来加载taf配置文件等操作。 支持set的配置项拉取,不过由于tafconfig的服务本身有坑,在拉取列表的时候,set必须传空,但是拉具体内容的时候,set又必要传真实的值,这个在代码里面有注释。
How to use:
install
本模块发布在公司内部NPM镜像,NPM镜像参数设置的方法请参考KM文档(内部 Node.JS NPM 镜像使用方法 )。
设置好NPM参数之后,使用如下命令安装模块:
npm install taf-config
require
var tafConfigHelper = require("taf-config");
创建taf-config-helper对象
var helper = new tafConfigHelper(options);
options
非必填参数。如果不传的话,相当于{tafConfigFile:process.env.TAF_CONFIG} 在taf平台上面调用此模块的话,是不需要传这个参数的。
app
taf app名称。 eg:TRom
server
服务名称。eg:flippedManagerServer
tafConfigObjProxyName
taf.tafconfig.ConfigObj这个服务的地址,这个参数主要是为了本地代理测试的。eg:
taf.tafconfig.ConfigObj@tcp -h 10.147.23.174 -p 8080 -t 60000 使用这个值,可以直接在本地调用到TAF服务
需要注意的是:本地使用代理的时候,拉取taf配置项列表必须指定host,否则返回列表为空。 eg: helper.getConfigList({host:"10.147.26.99"}); helper.getAllConfigData({host:"10.147.26.99"})
方法调用
事先说明,以下几个方法调用,configOptions可以是一个object,包含以下参数。
struct ConfigInfo
{
//业务名称
0 require string appname;
//服务名称
1 require string servername;
//配置文件名称
2 require string filename;
//是否只获取应用配置,默认为false,如果为true则servername可以为空
3 require bool bAppOnly=false;
//服务所在节点(ip)
4 optional string host;
//set分组名称
5 optional string setdivision;
};
loadConfig(configOptions)
获取配置文件内容,这里返回的是一个 promise对象,直接可以用then进行链式操作。
@param configOptions {string/object} taf配置文件名或者一个Object(见上面configOptions说明)
helper.loadConfig("flippedManagerServer.conf").then(function (data) {
console.log("loadConfig back", data);
}, function (err) {
console.log("loadConfig err", err);
}).done();
getConfigList(configOptions)
获取配置文件列表,这里返回的是一个 promise对象,直接可以用then进行链式操作。
@param configOptions {string/object} taf配置文件名或者一个Object(见上面configOptions说明),也可以不传,那么就直接使用默认的app和server。
@return 返回一个数组
helper.getConfigList().then(function (configList) {
//configList是一个数组
console.log("examples:getConfigList back", configList);
},
function (err) {
console.log("getConfigList error", err);
}).done();
getAllConfigData(configOptions)
这个接口比较常用,获取配置文件列表以及配置项的内容,这里返回的是一个 promise对象,直接可以用then进行链式操作。
@param configOptions {string/object} taf配置文件名或者一个Object(见上面configOptions说明),也可以不传,那么就直接使用默认的app和server。
@return 返回一个Object,key是文件名,value是文件内容
helper.getAllConfigData().then(function (configDatas) {
console.log("examples:getAllConfigData back", configDatas);
},
function (err) {
console.log("getAllConfigData error", err);
}).done();
loadServerObject(configOptions)
加载服务默认的配置项,并且转换为json,这里返回的是一个 promise对象,直接可以用then进行链式操作。
@param:configFormat {string} "c":c++格式的配置项,默认值。"json":配置项是json格式的
@return 返回一个Object,key是文件名,value是文件内容
helper.loadServerObject().then(
function (serverObject) {
console.log("serverObject", serverObject);
}
).done();
事件支持:
configPushed
从taf配置平台push配置文件的时候,将触发此事件,回调有两个参数
1.push的文件名
2:更改后的文件内容
var helper = new tafConfigHelper();
helper.on("configPushed", configPushed);
function configPushed(file, content) {
console.log("config pushed", file, content);
}
可以看examples里面的例子看使用方法