Custom errors for HTTP status codes. For the old js version look at the branch javascript
First, install throw-http-errors
as a dependency:
npm install --save throw-http-errors
const errors = require('throw-http-errors');
Parameters:
-
message[optional]: A detailed message for this error.
-
code[optional]: Code for this error, like FB API's error codes: https://developers.facebook.com/docs/marketing-api/error-reference/
new errors.BadRequest('Name required in body', 190);
OR
new errors[400](msg, code);
new errors.Unauthorized(msg, code);
OR
new errors[401](msg, code);
new errors.PaymentRequired(msg, code);
OR
new errors[402](msg, code);
new errors.Forbidden(msg, code);
OR
new errors[403](msg, code);
new errors.NotFound(msg, code);
OR
new errors[404](msg, code);
new errors.MethodNotAllowed(msg, code);
OR
new errors[405](msg, code);
new errors.InternalServerError(msg, code);
OR
new errors[500](msg, code);
HTTPError Name | HTTP Status |
---|---|
BadRequest | 400 |
Unauthorized | 401 |
PaymentRequired | 402 |
Forbidden | 403 |
NotFound | 404 |
MethodNotAllowed | 405 |
NotAcceptable | 406 |
ProxyAuthenticationRequired | 407 |
RequestTimeout | 408 |
Conflict | 409 |
Gone | 410 |
LengthRequired | 411 |
PreconditionFailed | 412 |
PayloadTooLarge | 413 |
URITooLong | 414 |
UnsupportedMediaType | 415 |
RangeNotSatisfiable | 416 |
ExpectationFailed | 417 |
MisdirectedRequest | 421 |
UnprocessableEntity | 422 |
Locked | 423 |
FailedDependency | 424 |
UnorderedCollection | 425 |
UpgradeRequired | 426 |
PreconditionRequired | 428 |
TooManyRequests | 429 |
UnavailableForLegalReasons | 431 |
RequestHeaderFieldsTooLarge | 451 |
InternalServerError | 500 |
NotImplemented | 501 |
BadGateway | 502 |
ServiceUnavailable | 503 |
GatewayTimeout | 504 |
HTTPVersionNotSupported | 505 |
VariantAlsoNegotiates | 506 |
InsufficientStorage | 507 |
LoopDetected | 508 |
NotExtended | 510 |
NetworkAuthenticationRequired | 511 |
new errors.CreateCustomError(status, name, message, code);
Parameters:
-
status[required]: The HTTP Status number of this error.
-
name[optional]: A unique identifier of this error.
-
message[optional]: Message of this error.
-
code[optional]: A unique code of this error.
In order to use it you need to require the module and then just throw a custom error:
const express = require('express');
const app = express();
const errors = require('throw-http-errors');
app.get('/user/:id', (req, res, next) => {
next(new errors.NotFound('User not found', 'USER_NOT_FOUND'));
});
Give a ⭐️ if this project helped you!