@tars/config

    npm install @tars/config

    使用前需先实例化 var config = new TarsConfig(data) 对象

    其中:

    data: 为 tars 配置文件路径 或 已配置的 @tars/config-parser 实例。

    如果服务通过 node-agent (或在Tars平台)运行,则无需传入 data

    FORMAT

    定义了配置文件的格式:

    • C: C++ 服务格式
    • JSON: JSON 格式
    • TEXT: 普通文本(自定义格式)

    LOCATION

    定义了配置文件存放的区域:

    • SERVER: 配置文件存放于服务下

    loadConfig([files ,]options)

    获取配置文件内容。

    files(String|Array) 可以为单一文件名也可是数组,如不填写则默认获取所有文件内容。

    options(Object) 为可选项,接受如下参数:

    • format: 文件格式, 默认为 FORMAT.C
    • location: 存放区域, 默认为 LOCATION.SERVER
    • filename: 文件名
    • content: 文件解析后内容

    如仅获取单一文件则返回文件解析后的内容

    例子

    获取 a.conf 文件内容:

    获取 a.conf 文件内容并以 json 进行解析:

    1. config.loadConfig("a.conf", {format : config.FORMAT.JSON}).then(function(data) {
    2. console.log("content:", data);
    3. }, function (err) {
    4. console.error("loadConfig err", err);

    获取存在于业务集中的 a.conf 文件内容:

    获取 a.confb.conf 文件内容:

    1. config.loadConfig(["a.conf", "b.conf"]).then(function(data) {
    2. data.forEach(function(item) {
    3. console.log("filename:", item.filename);
    4. console.log("content:", item.content);
    5. });
    6. console.error("loadConfig err", err);
    7. });

    获取服务所有配置文件内容:

    loadList(options)

    获取配置文件列表(所有配置文件名)。

    options(Object) 为可选项,接受如下参数

    • location: 存放区域, 默认为 LOCATION.SERVER

    调用成功后返回(Promise.resolve)由文件名组成的数组。

    获取服务的所有配置文件名:

    1. console.log("files:", filelist);
    2. }, function(err) {
    3. console.log("loadList error", err);
    4. });

    loadServerConfig(options)

    获取默认配置文件(文件名由 App.Server.conf 组成)。

    options(Object) 为可选项,接受如下参数

    • format: 文件格式, 默认为 FORMAT.C

    调用成功后返回(Promise.resolve)返回文件解析后的内容。

    例子

    获取服务默认配置文件:

    configPushed

    由Tars平台向服务Push配置文件的时将触发此事件。

    回调会给出Push下发的文件名。

    例子

    监听Push事件,并获取Push文件内容:

    1. config.on("configPushed", function(filename) {
    2. console.log("config pushed", filename);
    3. config.loadConfig(filename).then(function(data) {
    4. console.log("content:", data);
    5. }, function(err) {
    6. console.error("loadConfig err", err);
    7. });