error-page
Easily send errors in Node.js HTTP servers.
Think like the ErrorDocument declarations in Apache config files.
Usage
var ErrorPage = require('error-page')
http.createServer(function (req, res) {
res.error = ErrorPage(req, res, {
404: the404HandlerFunction,
5xx: handleAll500s,
403: 'forbidden.ejs',
400: 'that was bad',
"*": handleEverythingElse
debug: false
})
return res.error(404)
return res.error(405, "Allowed methods: GET, POST, HEAD")
return res.error(503, {'retry-after':10})
return res.error(418)
try {
blerg()
} catch (er) {
return res.error(er)
}
})
Any arguments to the res.error function will be interpreted based on
their type:
- Number: the status code (defaults to 500, if it can't find one)
- Error object: Some error that was thrown or raised somewhere (with a
stack, etc.)
- Other object: Bag o' headers which get set on the response.
- Function: A handler to use, instead of the one set up initially
- String: If there's a
res.template from
Templar, and it's a valid
template name, then it'll use the template as the handler.
- String that is not a template: A message (defaults to the
message
property on the Error object, if one was supplied, or the default
message associated with the status code.)
The handler (or template) is called with the request and response
objects, and a data object containing:
data = { message: message
, code: code
, statusCode: code
, error: er
, options: opts
, request: req.method + ' ' + req.url
, headers: req.headers
, url: req.url
}