41 lines
948 B
JavaScript
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;
|