https://github.com/open-node/open-router
https://github.com/open-node/open-router
http-router resitfy-router restify route router
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/open-node/open-router
- Owner: open-node
- Created: 2016-07-25T08:42:19.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2017-12-20T04:26:19.000Z (over 7 years ago)
- Last Synced: 2024-10-11T00:32:28.516Z (9 months ago)
- Topics: http-router, resitfy-router, restify, route, router
- Language: JavaScript
- Size: 38.1 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# open-router
==================A router for restify or framework based on restify.
[](https://travis-ci.org/open-node/open-router)
[](https://codecov.io/gh/open-node/open-router)## Node version
>= 6## Usage
npm install open-router --save## Example router definition
```js
var Router = require('open-router');/**
* @return router instance
*
* @params server
* restify.createServer() 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;
*/
var router = Router(server, controllers, defaultCtl, opts);//or chainning call, without argument order.
// var router = Router
// .server(server)
// .ctls(controllers)
// .defaults(defaultCtl)
// .opts(opts)
// .exec()```
## Methods
### router.get(routePath, actionPath)
HTTP.verb `GET`
Equivalent to
GET: /routePath
__Arguments__
* `routePath` - uri ,eg `/users/:id` or `/users/:userId/books`
* `actionPath` - controllerMethodPath,eg.`user#detail` { user: detail: function() {} }__Example__
```js
router.get('/users', 'user#list'); When request `/users` by GET, user controller's `list` method will be called.```
### router.put(routePath, actionPath)
HTTP.verb `PUT`
Equivalent to
PUT: /routePath
__Arguments__
* `routePath` - uri ,eg `/users/:id` or `/users/:userId/books`
* `actionPath` - controllerMethodPath,eg.`user#detail` { user: detail: function() {} }__Example__
```js
router.get('/users/:id', 'user#modify'); When request `/users/:id` by PUT, user controller's `modify` method will be called.```
### router.patch(routePath, actionPath)
HTTP.verb `PATCH`
Equivalent to
PATCH: /routePath
### router.post(routePath, actionPath)
HTTP.verb `POST`
Equivalent to
POST: /routePath
### router.del(routePath, actionPath)
HTTP.verb `DELETE`
Equivalent to
DELETE: /routePath
### router.resource(name, routePath)
HTTP.verb `DELETE` or `GET` or `PATCH` or `PUT`
Equivalent to
POST: /routePath
PUT: /routePath/:id
PATCH: /routePath/:id
GET: /routePath
GET: /routePath/:id
DELETE: /routePath/:id__Arguments__
* `name` - Response's name. eg: `user`, `book`, `order`
* `routePath` - optional, uri__Example__
```js
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, routePath)
HTTP.verb `DELETE` or `GET` or `PATCH` or `PUT`
Equivalent to
PUT: /routePath
PATCH: /routePath
GET: /routePath
DELETE: /routePath__Arguments__
* `name` - Response's name. eg: `user`, `book`, `order`
* `routePath` - optional, uri__Example__
```js
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, routePath)
HTTP.verb `DELETE` or `GET` or `PATCH` or `PUT`
Equivalent to
// List the resource
GET: /routePath
// Create a resource
POST: /routePath__Arguments__
* `name` - Response's name. eg: `user`, `book`, `order`
* `routePath` - optional, uri
* `parent` - optional, The resource's parent resource name__Example__
```js
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');
```