Skip to the content.

@tars/config

Tars-Config

Tars 框架中用于获取服务配置文件。

安装

npm install @tars/config

实例化

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

其中:

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

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

枚举

FORMAT

定义了配置文件的格式:

LOCATION

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

接口

loadConfig([files ,]options)

获取配置文件内容。

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

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

调用成功后返回(Promise.resolve)由如下对象组成的数组:

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

例子

获取 a.conf 文件内容:

config.loadConfig("a.conf").then(
  function (data) {
    console.log("content:", data);
  },
  function (err) {
    console.error("loadConfig err", err);
  }
);

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

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

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

config.loadConfig("a.conf", { location: config.LOCATION.APP }).then(
  function (data) {
    console.log("content:", data);
  },
  function (err) {
    console.error("loadConfig err", err);
  }
);

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

config.loadConfig(["a.conf", "b.conf"]).then(
  function (data) {
    data.forEach(function (item) {
      console.log("filename:", item.filename);
      console.log("content:", item.content);
    });
  },
  function (err) {
    console.error("loadConfig err", err);
  }
);

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

config.loadConfig().then(
  function (data) {
    data.forEach(function (item) {
      console.log("filename:", item.filename);
      console.log("content:", item.content);
    });
  },
  function (err) {
    console.error("loadConfig err", err);
  }
);

loadList(options)

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

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

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

例子

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

config.loadList().then(
  function (filelist) {
    console.log("files:", filelist);
  },
  function (err) {
    console.log("loadList error", err);
  }
);

loadServerConfig(options)

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

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

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

例子

获取服务默认配置文件:

config.loadServerConfig().then(
  function (data) {
    console.log("content:", data);
  },
  function (err) {
    console.log("loadServerConfig error", err);
  }
);

事件

configPushed

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

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

例子

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

config.on("configPushed", function (filename) {
  console.log("config pushed", filename);
  config.loadConfig(filename).then(
    function (data) {
      console.log("content:", data);
    },
    function (err) {
      console.error("loadConfig err", err);
    }
  );
});