Type-safe HTTP error handling package providing error classes, standardized responses, error handler, and built-in Express middleware support. Available as NPM package.
- Error Classes
- Error Handler
- Express Middleware Support
- TypeScript Support
import express from 'express';
import { errorHandler, ValidationError } from 'handle-http-errors';
const app = express();
app.post('/users', async (req, res) => {
try {
const { email } = req.body;
if (!email) {
throw new ValidationError('Email is required');
}
} catch (error) {
return errorHandler(error, res);
}
});
import express from 'express';
import { errorMiddleware, NotFoundError } from 'handle-http-errors';
const app = express();
app.get('/users/:id', (req, res, next) => {
try {
throw new NotFoundError('User not found', { id: req.params.id });
} catch (error) {
next(error);
}
});
app.use(errorMiddleware());
interface ErrorHandlerOptions {
includeStack?: boolean; // Include stack traces
onError?: (error: unknown) => void; // onError callback
}
// Use with handler
app.post('/users', async (req, res) => {
try {
throw new ValidationError('Invalid data');
} catch (error) {
return errorHandler(error, res, {
includeStack: process.env.NODE_ENV !== 'production',
onError: (error) => console.error(error)
});
}
});
// Use with middleware
app.use(errorMiddleware({
includeStack: process.env.NODE_ENV !== 'production',
onError: (error) => console.error(error)
}));
import {
HttpError, // Base error class
ValidationError, // 400 - Validation errors
BadRequestError, // 400 - Malformed requests
UnauthorizedError, // 401 - Authentication errors
ForbiddenError, // 403 - Authorization errors
NotFoundError, // 404 - Resource not found
InternalServerError // 500 - Server errors
} from 'handle-http-errors';
{
status: number; // HTTP status code
code: string; // Error code
message: string; // Error message
timestamp: string; // ISO timestamp
details?: object; // Optional error details
stack?: string; // Stack trace
}
Check out the examples directory for detailed usage examples:
git clone https://github.com/junjie-w/handle-http-errors.git
cd handle-http-errors/examples
npm install
# Try different examples
npm run dev:handler # Error handler usage
npm run dev:middleware # Express middleware usage
npm run dev:custom-middleware # Creating custom error-throwing middlewares
MIT