harris_paint / src /middleware /errorHandler.js
aliroohan179's picture
Upload 58 files
10821c7 verified
Raw
History Blame Contribute Delete
971 Bytes
const errorHandler = (err, req, res, next) => {
console.error('Error:', err.message);
// Mongoose validation error
if (err.name === 'ValidationError') {
const messages = Object.values(err.errors).map((e) => e.message);
return res.status(400).json({ message: 'Validation Error', errors: messages });
}
// Mongoose duplicate key error
if (err.code === 11000) {
const field = Object.keys(err.keyValue)[0];
return res.status(400).json({ message: `Duplicate value for '${field}'. This already exists.` });
}
// Mongoose cast error (invalid ObjectId)
if (err.name === 'CastError') {
return res.status(400).json({ message: `Invalid ${err.path}: ${err.value}` });
}
// Default server error
const statusCode = err.statusCode || 500;
res.status(statusCode).json({
message: err.message || 'Internal Server Error',
...(process.env.NODE_ENV === 'development' && { stack: err.stack }),
});
};
module.exports = errorHandler;