2.3.3 • Published 6 months ago

@lml_taf/taf-config v2.3.3

Weekly downloads
-
License
UNLICENSED
Repository
-
Last release
6 months ago

这个模块主要是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里面的例子看使用方法