koa-decorators
Use decorators as single-controller-level koa middlewares or define some meta data for the controller, for now only support koa 2.
Installation
npm install koa-decorators
Decorators
Methods
Docs
@router
Specified the router information for the controller.
It accepts two arguments:
- method:
String
, the HTTP method, required. - path:
String
, the path, required.
route(app, path)
Mount all routers specified by the @router
decorator.
- app:
Object
, an instance ofKoa
. - path:
String
, path to the directory of routers.
Example
Supposed that all your router files are put in ./apis
:
// apis/user.js'use strict'const router = moduleexports = @ async { ctxbody = 'user' }
And in outside app.js
:
// app.js'use strict'const Koa = const route = const app = app
Then koa-decorators
will help you to mount all routers in ./apis
:
> curl localhost:3003/user> user
@required
Add a koa middleware for the router to make sure some parameters should be in query-string or request body.
It accepts two arguments:
- query:
Array<String>
, all keys required in query-string, optional. - body:
Array<String>
, all keys required in request body, optional.
Example
// apis/user.js'use strict'const router required = moduleexports = @ @ async { ctxbody = 'user' }
> curl localhost:3003/user> 412 Query: id required > curl localhost:3003/user?id=1> user
convert(fun)
Convert an async function to koa middleware decorator.
This method accepts one argument:
- fun:
Function
, the async function to be converted.
Example
'use strict'const convert = { await } const converted = moduleexports = class @ @converted async { ctxbody = 'converted' }