npm install --save koa-decorators-router
or
yarn add koa-decorators-router
app.js
import * as Koa from 'koa'
import {Route} from 'koa-decorators-router';
const app = new Koa()
const router = new Route(app, apiPath);
//
router.registerRouters();
app.listen('3000');
api
import * as Koa from 'koa';
import {controller, get, log, required, convert} from 'koa-decorators-router';
// api path
@controller('/user')
class UserController{
aysnc middleware(ctx, next) => {
ctx.body = 'i am middleware';
}
// /user/findOne/zhangsan?age=40
@get('/findOne/:username')
//Url
@required({
params: 'username',
query: 'age'
})
//
@convert(middleware)
//
@log()
async getUserOne (ctx: Koa.Context): Promise<void> {
let data = {
username: ctx.params.username,
age: ctx.query.age
}
ctx.body = data;
}
@post('list')
// post
// post body
@required({
body: {
q: 'string',
pageNum: 'number'
}
})
async getList ():Promise<void>{
}
@put('upd/:id')
@required({
params : 'id'
})
async updGoods() : Promise<void> {
}
@del('del/:id')
@required({
params : 'id'
})
async delGoods () : Promise<void> {
}
}
: http://localhost:3000/user/findOne/zhangsan?age=40
:
{
"username": "zhangsan",
"age": 40
}