const logger = require('../utils/logger'); /** * Global error handling middleware */ const errorHandler = (err, req, res, next) => { // Log the error logger.error(`${err.name}: ${err.message}`, { stack: err.stack, path: req.path, method: req.method }); // Default error status and message const status = err.status || 500; const message = err.message || 'Internal Server Error'; // Handle specific error types if (err.name === 'ValidationError') { return res.status(400).json({ error: 'Validation Error', message: err.message, details: err.details }); } if (err.name === 'UnauthorizedError') { return res.status(401).json({ error: 'Unauthorized', message: 'Invalid or expired token' }); } // Return error response res.status(status).json({ error: err.name || 'Error', message: status === 500 ? 'Internal Server Error' : message }); }; module.exports = { errorHandler };