A set of basic HTTP errors that can be used in Express.js
const {
NotFound,
BadRequest
} = require('base-http-errors');
app.use((req, res, next) => {
if (routeDoesntExist()) {
next(new NotFound());
}
if (somethingWrongWithRequest()) {
next(new BadRequest('A Custom Message'));
}
});
// error handler
app.use((err, req, res, next) => {
res.status(err.status);
res.json({
message: err.message,
type: err.constructor.name,
});
});
Error Class | Default Message | Status Code |
---|---|---|
BaseError | Base Error | 500 |
TooManyRequests | Too Many Requests | 429 |
NotFound | Not Found | 404 |
Unauthorized | Unauthorized | 401 |
Forbidden | Forbidden | 403 |
BadRequest | Bad Request | 400 |
InvalidInput | Invalid Input | 400 |
You may subclass any of the above listed errors to create your own error.
E.g.
class CustomError extends BaseError {
constructor(message) {
super(message || 'Custom Error');
this.status = 400;
}
}