route-emitter
v2.0.0
Published
dead-simple routing
Downloads
28
Readme
route-emitter
Dead-simple routing for node.
usage
var http = require('http'),
Router = require('route-emitter').Router,
router = new Router()
router.listen('get', '/', function (req, res) {
res.end('Hello, world')
})
// listen for any http verb!
router.listen('post', '/blog', function (req, res) {
res.end('BLOG CREATED!')
})
// or you can catch 404s
router.listen('*', '*', function (req, res) {
res.writeHead(404)
res.end('PAGE NOT FOUND!')
})
// ...or verb-specific 404s
router.listen('put', '*', function (req, res) {
res.writeHead(404)
res.end('RESOURCE NOT FOUND!')
})
// create a listener with named emitter!
router.listen('delete', '/blog', 'deleteThatBlog')
// react to the emit!
router.on('deleteThatBlog', function (req, res) {
res.end('BLOG DELETED')
})
// catch named parameters!
router.listen('get', '/blog/{{ id }}', function (req, res, params) {
res.end(params.id)
})
// catch splats!
router.listen('delete', '/*', function (req, res, params) {
res.end(params._splat[0]) // || res.end(params._1)
})
// or roll your own regexp!
router.listen('patch', /my\/(.*)/, function (req, res, params) {
res.end(params._captured[0]) // || res.end(params.$1)
})
http.createServer(router.route.bind(router)).listen(70707)
other info
order of operations
(verb)/path
literal, if found(verb)/path params || splat || regexp
if found(verb)/*
if found*/path
literal, if found*/path params || splat || regexp
if found*/*
- at this point, route-emitter does a last-ditch effort to find a handler and
emits an event named
(verb):(path)
. if no listeners are attached to that specific event, it logs an unmatched route toprocess.stdout
params
values
params._splat
array of splat resultsparams._1
-params._x
1-x splat resultsparams._captured
array of captured results from custom RegExpparams.$1
-$params.$x
1-x captured results
license
MIT