mirror of
https://github.com/titanscouting/tra-analysis.git
synced 2025-10-24 18:09:20 +00:00
http-errors
Create HTTP errors for Express, Koa, Connect, etc. with ease.
Install
This is a Node.js module available through the
npm registry. Installation is done using the
npm install command:
$ npm install http-errors
Example
var createError = require('http-errors')
var express = require('express')
var app = express()
app.use(function (req, res, next) {
if (!req.user) return next(createError(401, 'Please login to view this page.'))
next()
})
API
This is the current API, currently extracted from Koa and subject to change.
All errors inherit from JavaScript Error and the exported createError.HttpError.
Error Properties
expose- can be used to signal ifmessageshould be sent to the client, defaulting tofalsewhenstatus>= 500headers- can be an object of header names to values to be sent to the client, defaulting toundefined. When defined, the key names should all be lower-casedmessage- the traditional error message, which should be kept short and all single linestatus- the status code of the error, mirroringstatusCodefor general compatibilitystatusCode- the status code of the error, defaulting to500
createError([status], [message], [properties])
var err = createError(404, 'This video does not exist!')
status: 500- the status code as a numbermessage- the message of the error, defaulting to node's text for that status code.properties- custom properties to attach to the object
new createError[code || name]([msg]))
var err = new createError.NotFound()
code- the status code as a numbername- the name of the error as a "bumpy case", i.e.NotFoundorInternalServerError.
List of all constructors
| Status Code | Constructor Name |
|---|---|
| 400 | BadRequest |
| 401 | Unauthorized |
| 402 | PaymentRequired |
| 403 | Forbidden |
| 404 | NotFound |
| 405 | MethodNotAllowed |
| 406 | NotAcceptable |
| 407 | ProxyAuthenticationRequired |
| 408 | RequestTimeout |
| 409 | Conflict |
| 410 | Gone |
| 411 | LengthRequired |
| 412 | PreconditionFailed |
| 413 | PayloadTooLarge |
| 414 | URITooLong |
| 415 | UnsupportedMediaType |
| 416 | RangeNotSatisfiable |
| 417 | ExpectationFailed |
| 418 | ImATeapot |
| 421 | MisdirectedRequest |
| 422 | UnprocessableEntity |
| 423 | Locked |
| 424 | FailedDependency |
| 425 | UnorderedCollection |
| 426 | UpgradeRequired |
| 428 | PreconditionRequired |
| 429 | TooManyRequests |
| 431 | RequestHeaderFieldsTooLarge |
| 451 | UnavailableForLegalReasons |
| 500 | InternalServerError |
| 501 | NotImplemented |
| 502 | BadGateway |
| 503 | ServiceUnavailable |
| 504 | GatewayTimeout |
| 505 | HTTPVersionNotSupported |
| 506 | VariantAlsoNegotiates |
| 507 | InsufficientStorage |
| 508 | LoopDetected |
| 509 | BandwidthLimitExceeded |
| 510 | NotExtended |
| 511 | NetworkAuthenticationRequired |