Constructors for HTTP errors
Note: This module will only work with Node.js >= 4.0.
npm install http-error-constructorStatusName is UpperCamelCased status name (description)
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- messageOrPropertiesis string)
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] - trueYou 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'npm install
npm test