easy router for node
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
test
.travis.yml
LICENSE
README.md
index.js
package.json

README.md

route-emitter

Build Status

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 to process.stdout

params values

  • 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

license

MIT