Connect style middleware for OADA Standard Errors.
The library can be installed with yarn
using
yarn add @oada/error
See examples README
The libraries test can be run with:
yarn test
Subclass of Error, it contains enough information to form an OADA Standard
Error. OADA-specific express middlewares should favor
throwing OADAError
over Error
. When paired with the OADAError middleware
OADAError
objects that are thrown are automatically converted to a compliant
OADA Standard Response.
message
{String} A basic description of the error that occurred. Default: ''
code
{Number/OADAError.codes.*} The HTTP response code for the error.
Default: 500
userMessage
{String} A short message that is appropriate to show the end
user explaining the error.
A client would typically blindly pass this message on
to the user. Default: Unexpected error. Please try again or contact support.
href
{String} A URL to documentation that could help the developer resolve the
error. Default:
https://github.com/OADA/oada-docs/blob/master/rest-specs/README.md
detail
{String, Optional} A descriptive error message appropriate for the
developer to help resolve the issue.
import { OADAError, Codes } from '@oada/error';
throw new OADAError('title', Codes.Ok, 'href', 'user message');
Connect style error handling middleware for OADA-originated projects. It catches
OADAError
objects that bubble up through middleware layers and generates a
valid OADA Standard Error Response. Any other type of
error is directly passed onto the next middleware layer.
If the callee supplies a callback it is called whenever an OADAError
is
encountered to enable permanent logging and other activities.
callback
{Function, Optional} Called whenever an OADAError
is encountered
in the middleware layers. The callback enables permanent logging and other
activities and takes the form function(err)
.
import express from 'express';
import { middleware } from '@oada/error';
function logError(err) {
console.log(err);
}
const app = express();
app.use(middleware(logError));