koa-decorate
为 koa-router 提供装饰器。
安装
应用配置
Koa-decorate 基于 es7 提供的装饰器, 但是 NodeJs 暂时不支持装饰器语法糖。 所以我们需要使用 TypeScript 开发我们的应用, 我们可以通过 ts-node 直接运行 TypeScript,无需通过线下先编译。
npm install --save-dev ts-node nodemon
*配置 nodemon.json (使用详情请查看koa-app) *
API 使用说明
- koa-decorate
- Decorator ⏏
- new Decorator([opts])
- .routes ⇒
function
- decorator
- http-method ⇒
@Get|@Post|@Put|@Delete|@All
- path ⇒
@Path
- parameter ⇒
@Param|@Query|@Body|@Ctx|@Next
- hook ⇒
@Before|@After
- http-method ⇒
- Controller
- Decorator ⏏
Decorator
new Decorator([opts])
创建一个 koa-decorate 实例。
参数 | 类别 | 描述 |
---|---|---|
[opts] | Object |
|
[opts.router] | Object |
koa-router 实例 |
[opts.controllers] | Object |
路由控制器类 |
function
Decorator.routes ⇒ 该方法用来装载控制器,并派发与请求想匹配的路由,返回一个 koa 中间件。
类别: Decorator
的实例属性。
举例
基础用法:
// app.ts;;; ; // 路由控制器类 ; app.userouter.routes;
@Get|@Post|@Put|@Delete|@All
http-method ⇒ 创建 @Verb
方法来匹配 HTTP 方法,Verb 是 HTTP 动词中的一个,像 @Get
or @Post
等。
另外, @All
可以与所有的 HTTP 方法相匹配。
举例
// CatController.ts; ;
@Path
path ⇒ 将 URL 与回调函数或控制器相匹配使用 @Path
,当 authFunc
返回 true ,控制器可以执行逻辑操作,否则拒绝访问。
参数 | 类别 | 描述 |
---|---|---|
path | String |
|
[authFunc] | Function => Boolean |
验证回调函数,非必须 |
举例
// CatController.ts; ;
@Param|@Query|@Body|@Ctx|@Next
parameter ⇒ @Parameter
类型的装饰器用来修饰 URL 中的参数或 koa 回调路由回调中的参数,Parameter 可以是 @Param
、 @Query
、 @Body
、 @Ctx
、 @Next
中的一个。(函数形参修饰器只有 TypeScript 支持)
参数 | 类别 | 描述 |
---|---|---|
name | String |
举例
// CatController.ts; ;
@Before|@After
hook ⇒ 当 URL 与路由匹配正确后,在执行控制器逻辑前会先执行 @Before
的 hookFunc ,处理完控制器逻辑后会执行 @After
的 hookFunc。
参数 | 类别 | 描 |
---|---|---|
[hookFunc] | Function |
回调钩子 |
举例
// CatController.ts; ;
Controller
Kind: 导出一个路由控制器集合的 HashMap 。
Example
// Controller/index.ts; ;