File size: 760 Bytes
11f4e50 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | import { Request, Response, NextFunction } from 'express';
import { logger } from '../utils/logger';
export const errorHandler = (
err: Error,
_req: Request,
res: Response,
_next: NextFunction
): void => {
logger.error(err.message, { stack: err.stack });
if (err.name === 'ValidationError') {
res.status(400).json({ error: err.message });
return;
}
if (err.name === 'CastError') {
res.status(400).json({ error: 'Invalid ID format.' });
return;
}
if ((err as any).code === 11000) {
res.status(409).json({ error: 'Duplicate entry. Resource already exists.' });
return;
}
res.status(500).json({ error: 'Internal server error.' });
};
|