https://github.com/salakjs/salak-router
Router for salak base on joi & koa.
https://github.com/salakjs/salak-router
Last synced: about 2 months ago
JSON representation
Router for salak base on joi & koa.
- Host: GitHub
- URL: https://github.com/salakjs/salak-router
- Owner: SalakJS
- License: mit
- Created: 2017-12-19T13:17:44.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2019-05-20T02:55:51.000Z (about 7 years ago)
- Last Synced: 2025-02-20T17:18:38.624Z (over 1 year ago)
- Language: JavaScript
- Size: 7.81 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# salak-router
[![NPM version][npm-image]][npm-url]
[![build status][travis-image]][travis-url]
[![David deps][david-image]][david-url]
[![NPM download][download-image]][download-url]
[npm-image]: https://img.shields.io/npm/v/salak-router.svg?style=flat-square
[npm-url]: https://npmjs.org/package/salak-router
[travis-image]: https://img.shields.io/travis/SalakJS/salak-router.svg?style=flat-square
[travis-url]: https://travis-ci.org/SalakJS/salak-router
[david-image]: https://img.shields.io/david/SalakJS/salak-router.svg?style=flat-square
[david-url]: https://david-dm.org/SalakJS/salak-router
[download-image]: https://img.shields.io/npm/dm/salak-router.svg?style=flat-square
[download-url]: https://npmjs.org/package/salak-router
> base on koa-router & joi
* Support request validate.
* Support response validate.
## Installation
Install using [npm](https://www.npmjs.org/):
```sh
npm install --save salak-router
```
## API Reference
* salak-router
* Router (extends koa-router)
* new Router([opts])
* _instance_
* .addRoute(opts, handler)
### Router
#### new Router([opts])
| Param | Type | Description |
| --- | --- | --- |
| [opts] | Object | |
| [opts.prefix] | String | prefix router paths |
| [opts.requestFailure] | Number | request validation error status |
| [opts.responseFailure] | String | response validation error status|
#### .addRoute(opts, handler)
add route for app
| Param | Type | Description |
| --- | --- | --- |
| opts | Object | |
| opts.path | String | router path |
| opts.method | Array|String | router method |
| opts.validate | Object | router validation schema |
| handler | Function | router handler |
## Example
```
const Koa = require('koa')
const Router = require('salak-router')
const Joi = Router.Joi
const app = new Koa()
const router = new Router()
router.addRoute({
path: '/test',
method: 'GET',
validate: {
query: {
id: Joi.number().required().description('文章id')
},
responses: {
200: {
body: Joi.object().keys({
code: Joi.number(),
msg: Joi.string()
}).description('文章详情')
}
}
}
}, async (ctx) => {
ctx.body = {
code: 0,
msg: 'ok'
}
})
app.use(router.routes())
app.listen(3000)
```
## LICENSE
MIT