HTTP error classes
yarn add heror
new BadRequestError(message: string = 'Bad Request', data?: any)
message- error messagedata- optional input that you can use for additional information regarding the error
createError(statusCode: number, error: string)
statusCode- http error status codeerror- official http error type/message
We provide some common http errors below. If your case is not covered by the errors. You could create new error using createError function. Please see usage examples.
| Status Code | Error Class Name |
|---|---|
| 400 | BadRequestError |
| 401 | UnauthorizedError |
| 403 | ForbiddenError |
| 404 | NotFoundError |
| 405 | MethodNotAllowedError |
| 406 | NotAcceptableError |
| 408 | RequestTimeoutError |
| 409 | ConflictError |
| 412 | PreconditionFailedError |
| 422 | UnprocessableEntityError |
| 500 | InternalServerError |
| 501 | NotImplementedError |
| 503 | ServiceUnavailableError |
| 507 | InsufficientStorageError |
| 508 | NotExtendedError |
import { BadRequestError, UnauthorizedError, createError } from 'heror';
const URITooLongError = createError(414, 'URI Too Long');
async function userController(req, res, next) {
if (!req.auth) {
throw new UnauthorizedError('Authentication is required', {
expose: true,
details: {}
});
}
/*
it will throw error instance
{
statusCode: 401,
error: 'Unauthorized',
message: 'Authentication is required',
data: {
expose: true,
details: {}
},
...nativeErrorProperties
}
/*
if (!req.params.id) throw new BadRequestError();
/*
it will throw error instance
{
statusCode: 400,
error: 'Bad Request',
message: 'Bad Request',
...nativeErrorProperties
}
*/
if (req.uri.length > 100) {
throw new URITooLongError('Max URI Length is 100 characters', {
uriLength: req.uri.length
});
}
/*
it will throw error instance
{
statusCode: 414,
error: 'URI Too Long',
message: 'Max URI Length is 100 characters',
data: {
uriLength: 111
},
...nativeErrorProperties
}
/*
}
MIT