micro-route
Version:
Tiny http routing helper
56 lines (43 loc) • 1.74 kB
Markdown
[](https://www.npmjs.com/package/micro-route)
[](https://www.npmjs.com/package/micro-route)
[](https://travis-ci.org/dotcypress/micro-route)
[](http://standardjs.com/)
# micro-route
> 🎛 Tiny http routing helper based on [`url-pattern`](https://github.com/snd/url-pattern)
## Installation
Install from NPM:
```js
$ npm install micro-route --save
```
## Examples
```js
const route = require('micro-route')
const corsRoute = route('*', 'OPTIONS')
const fooRoute = route('/', ['POST', 'PUT'])
const barRoute = route('/api/collection/:id', 'DELETE')
const anotherRoute = route('/api/transactions/:id')
module.exports = function (req, res) {
if (corsRoute(req)) {
// Send CORS headers
} else if (fooRoute(req)) {
// Do cool stuff
}
}
```
```js
const match = require('micro-route/match')
module.exports = function (req, res) {
const { params, query } = match(req, '/api/transactions/:id?ts=12', true)
console.log('Transaction id:', params.id)
console.log('ts:', query.ts)
}
```
```js
const dispatch = require('micro-route/dispatch')
module.exports = dispatch()
.dispatch('*', 'OPTIONS', (req, res) => ... )
.dispatch('/', ['POST', 'PUT'], (req, res) => ... )
.dispatch('/api/collection/:id', 'DELETE', (req, res) => ... )
.dispatch('/api/transactions/:id', '*', (req, res, { params, query }) => ... )
.otherwise((req, res) => ... )
```