OADA (openag.io) Standard Error Middleware

Usage no npm install needed!

<script type="module">
  import oadaError from 'https://cdn.skypack.dev/oada-error';


Build Status Coverage Status Dependency Status License


Connect style middleware for OADA Standard Errors.

Getting Started


The library can be installed with npm using

$ npm install oada-error

Running the Examples

Minimal Example

See examples README

Running the tests, coverage, and style checks

The libraries test can be ran with:

$ npm test

The coverage report is generated by:

$ npm run cover

Gulp runs jshint (lint) and jscs (style) with:

$ gulp lint
$ gulp style


OADAError(message, code, userMessage, href, detail)

Subclass of Error, it contains enough information to form an OADA Standard Error. OADA specific express middleware 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 the show the end user explaining the error. A client would typically blindly pass this message on to 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.

Usage Example

var OADAError = require('oada-error').OADAError;

throw new OADAError('title', OADAError.codes.OK, 'href', 'user message');


Connect style error handling middleware for OADA ordinated 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).

Usage Example

var express = require('express');
var errorMiddleware = require('oada-error').middleware;

function logError(err) {

var app = express();