Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yoshuawuyts/server-router
Server router
https://github.com/yoshuawuyts/server-router
Last synced: about 1 month ago
JSON representation
Server router
- Host: GitHub
- URL: https://github.com/yoshuawuyts/server-router
- Owner: yoshuawuyts
- License: mit
- Created: 2016-01-31T05:00:11.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2019-11-28T01:43:26.000Z (almost 5 years ago)
- Last Synced: 2024-09-20T06:19:59.298Z (about 1 month ago)
- Language: JavaScript
- Homepage:
- Size: 51.8 KB
- Stars: 61
- Watchers: 5
- Forks: 9
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# server-router [![stability][0]][1]
[![npm version][2]][3] [![build status][4]][5] [![test coverage][6]][7]
[![downloads][8]][9] [![js-standard-style][10]][11]Performant [radix-trie](https://en.wikipedia.org/wiki/Radix_tree) router for
streaming servers.## Usage
```js
var serverRouter = require('server-router')
var http = require('http')var router = serverRouter({ default: '/404' })
router.route('GET', '/hello', function (req, res, params) {
res.end('hello world')
})router.route('PUT', '/hello/:name', function (req, res, params) {
res.end('hi there ' + params.name)
})router.route('', '/404', function (req, res, params) {
res.status = 404
res.end('404')
})http.createServer(router.start()).listen()
```## API
### router = serverRouter(opts)
Create a new router with opts.### router.route(method|[methods], route, function (req, res, params))
Register a new route with an HTTP method name and a routename. Can register
multiple handlers by passing an array of method names. `params` contains
matched partials from the route.### router.match(req, res)
Match a route on a router.### handler = router.start()
Return a function that can be passed directly to `http.createServer()` and
calls `router.match()`.## Installation
```sh
$ npm install server-router
```## See Also
- [wayfarer](https://github.com/yoshuawuyts/wayfarer) - vanilla radix-trie
router
- [nanorouter](https://github.com/yoshuawuyts/nanorouter) - client-side
radix-trie router## License
[MIT](https://tldrlegal.com/license/mit-license)[0]: https://img.shields.io/badge/stability-experimental-orange.svg?style=flat-square
[1]: https://nodejs.org/api/documentation.html#documentation_stability_index
[2]: https://img.shields.io/npm/v/server-router.svg?style=flat-square
[3]: https://npmjs.org/package/server-router
[4]: https://img.shields.io/travis/yoshuawuyts/server-router/master.svg?style=flat-square
[5]: https://travis-ci.org/yoshuawuyts/server-router
[6]: https://img.shields.io/codecov/c/github/yoshuawuyts/server-router/master.svg?style=flat-square
[7]: https://codecov.io/github/yoshuawuyts/server-router
[8]: http://img.shields.io/npm/dm/server-router.svg?style=flat-square
[9]: https://npmjs.org/package/server-router
[10]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square
[11]: https://github.com/feross/standard
[12]: https://github.com/yoshuawuyts/wayfarer