Package Exports
- routes-router
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (routes-router) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
routes-router
Simplest router possible
Example
var Router = require("routes-router")
var http = require("http")
var router = Router()
http.createServer(router)
router.addRoute("/foo", function (req, res) {
res.end("hello!")
})
router.addRoute("/bars/:barName", function (req, res, opts) {
res.end("you request bars " + opts.barName)
})
router.addRoute("/foos/:fooName", function (req, res, opts, cb) {
db.get(opts.fooName, function (err, value) {
if (err) return cb(err)
res.end(JSON.stringify(value))
})
})
router.addRoute("/baz/:things", {
GET: function (req, res) {
res.end("I will give you your thing")
},
POST: function (req, res) {
res.end("got your things")
}
})
Error handling with a router
You can use a router to do central error handling
var Router = require("routes-router")
var sendError = require("send-data/error")
var uuid = require("uuid")
var router = Router({
errorHandler: function (req, res, err) {
err.id = uuid()
// log it somewhere
logError(req, res, err)
// if req is json
if (isJson(req)) {
sendError(req, res, err)
} else {
// render HTML 500 page
renderErrorPage(req, res, err)
}
},
teardown: function (req, res, err) {
// an unexcepted exception occured
// process is in corrupted state
// you have to shut it down
// see node domains docs
},
notFound: function (req, res) {
// render a custom 404 page
renderNotfoundPage(req, res)
},
useDomains: true
})
Installation
npm install routes-router
Contributors
- Raynos