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!