route-emitter

dead-simple routing

route-emitter

Dead-simple routing for node.

var http = require('http'),
    Router = require('route-emitter').Router,
    router = new Router()
 
router.listen('get', '/', function (reqres) {
  res.end('Hello, world')
})
 
// listen for any http verb! 
router.listen('post', '/blog', function (reqres) {
  res.end('BLOG CREATED!')
})
 
// or you can catch 404s 
router.listen('*', '*', function (reqres) {
  res.writeHead(404)
  res.end('PAGE NOT FOUND!')
})
 
// ...or verb-specific 404s 
router.listen('put', '*', function (reqres) {
  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 (reqres) {
  res.end('BLOG DELETED')
})
 
// catch named parameters! 
router.listen('get', '/blog/{{ id }}', function (reqresparams) {
  res.end(params.id)
})
 
// catch splats! 
router.listen('delete', '/*', function (reqresparams) {
  res.end(params._splat[0]) // || res.end(params._1) 
})
 
// or roll your own regexp! 
router.listen('patch', /my\/(.*)/, function (reqresparams) {
  res.end(params._captured[0]) // || res.end(params.$1) 
})
 
http.createServer(router.route.bind(router)).listen(70707)
  • (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 to process.stdout
  • params._splat array of splat results
  • params._1 - params._x 1-x splat results
  • params._captured array of captured results from custom RegExp
  • params.$1 - $params.$x 1-x captured results

MIT