shiny-express-errors
v1.2.2
Published
Error handling functionality for express/node.js
Downloads
4,909
Readme
Express Error Handler
Formats errors for the api-problem+json media-type
Error details (e.g. name, message, stack) will be included if the showDetails
option is set. If the error already has a detail
property, that is included as well, either as description
if it is a string, or as the included properties if it is an object.
If err.status
, err.statusCode
or err.output.statusCode
is set, that will set the HTTP status for the error response. It will also display the error's message
property.
Usage
Include the module
errorHandler = require('shiny-express-errors');
[handleErrors]{#handleErrors} [handleUncaughtErrors]{#handleUncaughtErrors} [sendError]{#sendError} [serializer]{#serializer} [getStatusCode]{#getStatusCode} [getRootError]{#getRootError}
Add middleware for error handling
app.use(errorHandler.handleErrors(options));
options
showDetails
: boolean|function(err, req). whether to include error details (like stack) in response. Defaults to return true if statusCode is known and less than 500. Suggest changing it to show for all but 500+ in productionshowStack
: boolean|function(err, req). whether to include stack trace in response. Defaults to false. Suggest changing it to show for all but productionerrorCallback
: function(err, req, responseSent). callback to run before sending error response (e.g. custom logging or whatever). responseSent is a boolean,true
if response headers have already been sent, i.e. next(err) will not be called, so error is not indicated is response. Defaults to doing nothingdescribedBy
: string|function(req). when string, value will be used in thedescribedBy
field. when function, function will be run to generate field (withreq
as an argument). Defaults to<host>/errors/error.html
Add middleware for uncaught errors (uses domains). Attempts to send error response if response not already sent. Then it closes any open connections before shutting down the server. Server should be shut down after an uncaught exception: it always indicates a programmer error that should be fixed immediately.
app.use(errorHandler.handleUncaughtErrors(options));
options
callback
: function(err, req). callback to run before closing
Send an error response to the client. Sends using api-problem media type.
errorHandler.sendError(req, res, status, title, detail)
Bunyan serializer. Includes recursive verror walking
serializer = require('shiny-express-errors').serializer;
Inspect Error object to try to determine appropriate http status code
var code = serializer.statusCode(err);
Get root error. Recurses verrors to get original error object
var e = serializer.getRootError(err);