http-error-constructor
Constructors for HTTP errors
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 ifmessageOrProperties
is string)
Examples
var HttpError = ; var err = 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 = 400 'Validation Failed' fields: phoneNumber: 'Invalid format' ; /* or you can include message in the properties objectvar 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 = 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 = 471 'Custom Error'; // err.name - '471 Error'// err.statusCode - 471// err.status - 471// err.message - 'Custom Error'
Tests
npm installnpm test