hec

http-error-constructor

Constructors for HTTP errors

Showing:

Popularity

Downloads/wk

480

GitHub Stars

8

Maintenance

Last Commit

6yrs ago

Contributors

0

Package

Dependencies

2

Size (min+gzip)

1.9KB

License

MIT

Type Definitions

Tree-Shakeable

No?

Categories

Readme

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

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100