Spaces:
Runtime error
Runtime error
File size: 769 Bytes
8c7b7ca | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 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;
|