https://github.com/tea-node-js/tea-router
https://github.com/tea-node-js/tea-router
Last synced: 12 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/tea-node-js/tea-router
- Owner: tea-node-js
- Created: 2019-01-30T03:52:31.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-04-12T22:52:24.000Z (about 4 years ago)
- Last Synced: 2025-06-01T11:36:23.111Z (about 1 year ago)
- Language: JavaScript
- Size: 102 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# tea-router
A router for koa.
# Node version
```
>= 8
```
# Usage
```
npm install --save tea-router
```
# Example router definition
```
cont Koa = require('koa');
const Rourer = require('tea-router');
/**
* @return router instance
*
* @params server
* new Koa() return result
* @params controllers
* All controllers object,
* {
* controllerName: {
* methodName: method
* }
* }
* @params defaultCtl
* {
* list: function() {},
* modify: function() {},
* detail: function() {},
* remove: function() {},
* add: function() {}
* }
* @params opts
* apis The uri list all rest api;
*/
const server = new Koa();
const router = Router(server, controllers, defaultCtl, opts);
```
# Methods
## router[get|post|del|put|patch](path, ctlAct)
```
router.get('/users', 'user#list')
router.post('/users', 'user#addUser')
router.get('/users/:userId', 'user#detail')
router.del('/users/:userId', 'user#remove')
router.put('/users/:userId', 'user#modify')
router.post('/users/:userId', 'user#modify')
```
## router.resource(name, path)
```
router.resource('user')
// Equivalent to
// router.get('/users', 'user#list');
// router.get('/users/:id', 'user#detail');
// router.put('/users/:id', 'user#modify');
// router.patch('/users/:id', 'user#modify');
// router.delete('/users/:id', 'user#remove');
// router.post('/users', 'user#add');
```
## router.model(name, path)
```
router.model('user')
// Equivalent to
// router.get('/users/:id', 'user#detail');
// router.put('/users/:id', 'user#modify');
// router.patch('/users/:id', 'user#modify');
// router.delete('/users/:id', 'user#remove');
router.model('user', '/systems/users')
// Equivalent to
// router.get('/systems/users/:id', 'user#detail');
// router.put('/systems/users/:id', 'user#modify');
// router.patch('/systems/users/:id', 'user#modify');
// router.delete('/systems/users/:id', 'user#remove');
```
## router.collection(name, path)
```
router.collection('book', null, 'user')
// Equivalent to
// router.get('/users/:userId/books', 'user#books');
// router.post('/users/:userId/books', 'user#addBook');
router.collection('book', '/users/:creatorId/books', 'user')
// Equivalent to
// router.get('/users/:creatorId/books', 'user#books');
// router.post('/users/:creatorId/books', 'user#addBook');
```