e-scooter-rental-system/server/middleware/errorHandler.js

41 lines
948 B
JavaScript

// 错误处理中间件
const errorHandler = (err, req, res, next) => {
console.error('错误:', err.message);
// MongoDB 连接错误
if (err.name === 'MongoError' || err.name === 'MongooseError') {
return res.status(500).json({
success: false,
message: '数据库错误',
error: err.message
});
}
// 验证错误
if (err.name === 'ValidationError') {
return res.status(400).json({
success: false,
message: '数据验证失败',
error: err.message
});
}
// 404 错误
if (err.name === 'CastError') {
return res.status(404).json({
success: false,
message: '数据不存在',
error: err.message
});
}
// 默认错误
res.status(err.status || 500).json({
success: false,
message: err.message || '服务器内部错误',
error: process.env.NODE_ENV === 'development' ? err.stack : undefined
});
};
module.exports = errorHandler;