Skip to content

eldimious/throw-http-errors

Repository files navigation

throw-http-errors

Custom errors for HTTP status codes. For the old js version look at the branch javascript

Build Status Coverage Status

Usage

First, install throw-http-errors as a dependency:

npm install --save throw-http-errors

HTTP Errors

  const errors = require('throw-http-errors');

Parameters:

400 BadRequest

  new errors.BadRequest('Name required in body', 190);
            OR
  new errors[400](msg, code);

401 Unauthorized

  new errors.Unauthorized(msg, code);
            OR
  new errors[401](msg, code);

402 PaymentRequired

  new errors.PaymentRequired(msg, code);
            OR
  new errors[402](msg, code);

403 Forbidden

  new errors.Forbidden(msg, code);
            OR
  new errors[403](msg, code);

404 NotFound

  new errors.NotFound(msg, code);
            OR
  new errors[404](msg, code);

405 MethodNotAllowed

  new errors.MethodNotAllowed(msg, code);
            OR
  new errors[405](msg, code);

500 InternalServerError

  new errors.InternalServerError(msg, code);
            OR
  new errors[500](msg, code);

Supported HTTP ERRORS

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

Custom Errors

  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.

Example

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'));
});

Support Me

ko-fi

Show your support

Give a ⭐️ if this project helped you!