插件与中间件各自解决的问题
中间件的定位是拦截请求,并在拦截前或者拦截后做一些事情,例如鉴权、记录日志等。
初次之外其它与请求无关的事情,例如定时任务、应用启动操作等,应该交给插件去做。
插件的引入和通用配置
使用包管理工具安装插件,在 config/plugin.ts 中配置插件。
通用配置参数如下:
enable
(boolean) 是否启用插件package
(string) 从 npm 安装的插件path
(string) 从指定路径安装的插件env
(string[]) 只在指定环境中启用插件
使用 config/plugin..ts 根据不同的环境自动加载插件。
例如一个只在开发环境才会安装和启用的插件:
{
"devDependencies": {
"egg-demo": "*"
}
}
const plugin = {
demo: true
}
默认的插件配置文件是 config/plugin.ts。
插件的安装方式
插件可以从 npm 安装,或者从本地安装,分别对应package
和path
参数,二者只能指定一个。
默认的插件列表
- onerror 异常处理
- Session
- i18n 多语言
- watcher 文件和文件夹监控
- multipart 文件流式上传
- security
- development 开发环境配置
- logrotator 日志切分
- schedule 定时任务
- static 静态服务器
- jsonp
- view 模板引擎
- ……
评论区