DigitalDB / src /middleware /errorHandler.js
Mr-Thop's picture
Add files
3db086d
Raw
History Blame Contribute Delete
872 Bytes
// Centralized error handling middleware
const errorHandler = (err, req, res, next) => {
console.error('Error occurred:', err);
// Default error
let statusCode = err.statusCode || 500;
let message = err.message || 'Internal Server Error';
// Handle specific error types
if (err.code === 'ER_DUP_ENTRY') {
statusCode = 409;
message = 'Duplicate entry: This record already exists';
}
if (err.code === 'ER_NO_REFERENCED_ROW_2') {
statusCode = 400;
message = 'Invalid reference: Related record does not exist';
}
if (err.code === 'ECONNREFUSED') {
statusCode = 503;
message = 'Database connection failed';
}
res.status(statusCode).json({
success: false,
error: message,
...(process.env.NODE_ENV === 'development' && { stack: err.stack })
});
};
module.exports = errorHandler;