EggJS提供了项目级别参数配置特性。EggBornJS在EggJS提供的特性基础之上进行了扩展,实现了模块级别参数配置特性

  1. 模块可以单独实现自己的参数配置
  2. 项目级别参数配置可以覆盖模块级别参数配置

定义参数

src/suite-vendor/test-party/modules/test-party/backend/src/config/config.js

  1. 1module.exports = appInfo => {
  2. 2 const config = {};
  3. 3
  4. 4 config.message = 'Hello World';
  5. 5
  6. 6 return config;
  7. 7};

使用参数

模块内部使用

src/suite-vendor/test-party/modules/test-party/backend/src/controller/kitchen-sink/guide.js

  1. 1async echo2() {
  2. 2 const message = this.ctx.config.message;
  3. 3 this.ctx.success(message);
  4. 4}

跨模块使用

如果是跨模块使用另一个模块的参数配置,方式如下:

  1. 1async echo2() {
  2. 2 const message = this.ctx.config.module('test-party').message;
  3. 3 this.ctx.success(message);
  4. 4}
名称 说明
config.module(moduleName) 返回指定模块的config对象

覆盖参数

可以使用项目级别的参数覆盖模块级别的参数,从而方便我们从项目层面定制模块的行为参数

src/backend/config/config.default.js

  1. 1// modules
  2. 2config.modules = {
  3. 3 'test-party': {
  4. 4 message: 'Hello World!',
  5. 5 },
  6. 6};

由于EggJS可以针对测试环境开发环境生成环境单独配置Config,因此,我们也可以借此特性针对不同的环境定制模块的行为参数