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