File size: 699 Bytes
1744590 | 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 30 31 | /**
* Global error handling middleware.
* @module errorHandler
*/
import { Request, Response, NextFunction } from 'express';
import { AppError } from '../utils/errors.js';
import { logger } from '../utils/logger.js';
export function errorHandler(
err: Error,
_req: Request,
res: Response,
_next: NextFunction
): void {
if (err instanceof AppError) {
logger.warn(`Operational error: ${err.message}`);
res.status(err.statusCode).json({
status: 'error',
message: err.message,
});
return;
}
logger.error(`Unexpected error: ${err.message}`, { stack: err.stack });
res.status(500).json({
status: 'error',
message: 'Internal server error',
});
}
|