koa-decorators-router

koa-router的封装

Downloads
5
Stars
5
Committers
1

koa-decorators-router(koa-router)

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
}

https://github.com/soraping/koa-ts