框架提供了强大的配置管理功能,可以根据运行环境的不同使用指定的配置
配置文件位于 src/config
目录下,框架提供了一些默认配置,也可以自行定义任何配置
我们可以简单的获取配置实例来操作配置,在控制器中我可以通过依赖注入获取:
import { Controller, Get, Config, Autowried } from '@tiger/common';
@Controller('users')
export class UserController {
@Autowried
config: Config;
@Get()
index() {
console.log(this.config.get('app.port'))
}
}
config.get([name [, default]])
name
: 配置名称,使用 文件名.属性名.属性名...
的方式获取default
: 默认值,当未获取到配置属性时,返回 default
的值this.config.get('app.name', 'tiger')
config.set(name, value)
在框架运行期间,我们可以使用该方法动态的修改配置或者添加配置:
this.config.set('app.custom_config', 'haha')
如果开启了多进程,修改的配置只会在当前进程生效
框架支持自定义配置文件:
首先我们需要在 src/config/
目录下创建一个新的文件,例如 custom.js
然后我们在该文件中填充以下内容:
export default {
prop1: 1,
prop2: 2,
}
我们也可以直接定义 class 类型
然后我们就可以使用 get
方法获取配置内容了:
this.config.get('custom.prop1')
框架拥有根据不同运行环境来读取不同配置的能力:
src
|- config
| |- app.ts
| |- app.online.ts
| |- app.dev.ts
app.ts
为框架默认加载的配置文件,app.dev.ts
为框架在开发环境加载的配置文件,app.online.ts
为框架在生产环境加载的配置文件,也就是说,当运行环境为生产环境时,框架会使用 app.online.ts
覆盖 app.ts
中的同名属性(如果为对象)
对象同名属性直接替换,不会再进行二次比较
app.xxx.ts
环境命名使用app.env.code
环境变量, 具体参考环境变量章节