http-error-constructor

0.1.0 • Public • Published

http-error-constructor

Constructors for HTTP errors

NPM version Build status

Note: This module will only work with Node.js >= 4.0.

Installation

npm install http-error-constructor

Usage

new HttpError([statusCode=500], [messageOrProperties], [properties])

new HttpError.<StatusName>([messageOrProperties], [properties])

StatusName is UpperCamelCased status name (description)

new HttpError[<statusCode>]([messageOrProperties], [properties])

Parameters

  • [statusCode=500] {Number} - Three-digit integer code. Status Code Registry
  • [messageOrProperties] {String | Object} - String message or object with additional properties
  • [properties] {Object} - Additional properties (used only if messageOrProperties is string)

Examples

var HttpError = require('http-error-constructor');
 
var err = new HttpError(400);
 
// err.name - 'BadRequest'
// err.statusCode - 400
// err.status - 400
// err.message - 'Bad Request'
 
// name, statusCode and status are non-enumerable and therefore ignored in JSON.stringify(err):
// '{"message": "Bad Request"}'

With custom message and additional properties:

var err = new HttpError(400, 'Validation Failed', {
    fields: {
        phoneNumber: 'Invalid format'
    }
});
 
/* or you can include message in the properties object
var err = new HttpError(400, {
    message: 'Validation Failed',
    fields:  {
        phoneNumber: 'Invalid format'
    }
});
*/
 
// err.statusCode - 400
// err.status - 400
// err.message - 'Validation Failed'
// err.fields - { phoneNumber: 'Invalid format' }
 
// JSON.stringify(err) - '{"message": "Bad Request", "fields": { "phoneNumber": "Invalid format" } }'

Using specific error constructor:

var properties = {
    message: 'Validation Failed',
    fields:  {
        phoneNumber: 'Invalid format'
    }
};
 
var err = new HttpError.BadRequest(properties); // or new HttpError[400](properties)
 
// err instanceof HttpError - true
// err instanceof HttpError.BadRequest - true
// err instanceof HttpError[400] - true

You can use custom status codes:

var err = new HttpError(471, 'Custom Error');
 
// err.name - '471 Error'
// err.statusCode - 471
// err.status - 471
// err.message - 'Custom Error'

Tests

npm install
npm test

License

MIT

Readme

Keywords

Package Sidebar

Install

npm i http-error-constructor

Weekly Downloads

204

Version

0.1.0

License

MIT

Last publish

Collaborators

  • jokero