@artusx/plugin-koa
插件基于 koa 封装,默认集成 koa-router,并添加 controller / middleware / http method 等注解能力,完全兼容 koa 生态。
概览
在框架各生命周期执行如下操作:
-
willReady
- 加载 middleware,注册 ArtusX 中间件
- 加载 controller,注册路由以及函数中间件
-
didReady
- 加载 koa-router,挂载插件中注册的路由
- 启动 http 服务:koa.listen(port: number)
当服务接收到请求后,先执行应用自定义声明周期 willReady 中,用户拓展的 koa 中间件(参考进阶章节);请求到达 koa-router,执行 ArtusX,并将结果交给 controller,由具体的 handler 完成最终处理。
配置
配置插件
keys 通过 KOA_KEYS 环境变量传入。
iTerm
port 默认配置为 7001,可通过 config 修改。
config.default.ts
启用插件
core 插件已默认集成,无需单独配置;如需单独使用,可通过如下方式开启插件。
plugin.ts
内置注解
@Middleware
类中间件
Tip
类中间件为全局中间件,可通过 config.artusx.middlewares 控制执行顺序,否则根据加载顺序执行。
middleware/limitRate.ts
函数中间件
middleware/traceTime.ts
@Controller
此外插件提供了 web服务的常用注解:
@GET: (path: string)@PUT: (path: string)@POST: (path: string)@HEAD: (path: string)@PATCH: (path: string)@DELETE: (path: string)@OPTIONS: (path: string)@MW: (middlewares: ArtusXHandler[])
controller/home.ts
进阶使用
自定义 lifecycle.ts
如内置 koa 无法满足需求,可通过自定义 LifecycleHook ,在应用启动前,对 koa 进行拓展。
lifecycle.ts