koa-router-decorators-plus
v1.0.7
Published
本插件针对@rxts/koa-router-decorators进行更改拓展!
Downloads
5
Readme
koa-router-decorators-plus
本插件针对@rxts/koa-router-decorators
进行更改拓展!
TOC
更改
- 解决在使用以后 route 挂载不上的问题(原因:
没有引用controller文件注解不会触发
) - Controller 添加
prefix
- 添加参数校验方法
paramsRequired
安装
# yarn
yarn add koa-router-decorators-plus
# npm
npm i koa-router-decorators-plus
使用方法
Controller 的使用
import { Controller, get, paramsRequired } from 'koa-router-decorators-plus'
import * as Koa from 'koa'
@Controller('/test')
export default class startApi {
// 括号中如果不传入参数 则自动拼接url 即:/test/getIndex
@get()
async getIndex(ctx: Koa.Context, next: Function) {
ctx.body = {
a: 66666,
}
}
@paramsRequired(['username', 'password'])
@get('/login')
async getString(ctx: Koa.Context, next: Function) {
// 使用paramsRequired后会自动扫描ctx.request.query或则ctx.request.body上是否存在相关参数
// 没有则返回400, 有则进入当前handler
const { username, password } = ctx.request.query
ctx.body = {
username,
password,
}
}
@paramsRequired({
body: ['username', 'password'],
query: ['id'],
})
@post('/update')
async update(ctx: Koa.Context, next: Function) {
// 按配置读取body以及query上的参数
const { username, password } = ctx.request.body
ctx.body = {
username,
password,
}
}
}
路由注册
import Koa from 'koa'
import loadController from 'koa-router-decorators-plus'
import KoaRouter from 'koa-router'
const app = new Koa()
// 第二个参数为存放contorller的文件夹
loadController(router, resolve(__dirname, './controllers'))
const router = new KoaRouter()
app.use(router.routes())
app.use(router.allowedMethods())
License
MIT ©