| /** | |
| * 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', | |
| }); | |
| } | |