function errorHandler(err, _req, res, _next) { if (err?.name === 'ValidationError') { const firstError = Object.values(err.errors || {})[0]; return res.status(400).json({ message: firstError?.message || 'Validation failed' }); } if (err?.name === 'CastError') { return res.status(400).json({ message: 'Invalid identifier' }); } if (err?.code === 11000) { const duplicateKeys = err.keyPattern || err.keyValue || {}; const field = Object.keys(duplicateKeys)[0] || 'field'; return res.status(409).json({ message: `${field} already exists` }); } if (err?.message) { return res.status(400).json({ message: err.message }); } return res.status(500).json({ message: 'Internal server error' }); } module.exports = errorHandler;