获取配置文件中内容

优质
小牛编辑
128浏览
2023-12-01

在程序入口文件index.js 中可以在init方法中获取server对象,通过该server可以获取config,具体方式如下:

init(server, options) {
     const config = server.config();
     const url = config.get('elasticsearch.url');
    }

自定义配置

1.配置校验与默认值

在index.js new kibana.Plugin中可以传入config方法,如下:

    config(Joi) {
      return Joi.object({
        enabled: Joi.boolean().default(true),
        scheduleTime: Joi.number().default(60),
        mergePattern: Joi.string().default('[^a-z]+$'),
      }).default();
    },

这里使用的Joi,通过它可以设置配置参数的数据类型,以及默认值。参数默认格式是[pluginName].enabled等。

2.参数注入

参数注入的目的是前端可以使用该参数,对于server端获取参数,完全可以使用server.config().get('elasticsearch.url').

注入的方式是在uiExports中injectDefaultVars:

export default function (kibana) {
  return new kibana.Plugin({
    require: ['elasticsearch'],
    name: 'cleaner',
    uiExports: {
      injectDefaultVars: function (server) {
        const config = server.config();
        const pattern = config.get('cleaner.mergePattern');
        return {
          mergePattern: pattern,
        };
      }
    },
  });
}

3.前端获取参数

import chrome from 'ui/chrome';
const mergePattern = chrome.getInjected('mergePattern');