Files
vue-driven-cloud-storage/backend/middleware/error-handler.js

21 lines
625 B
JavaScript

function expressErrorHandler(err, req, res, next) {
if (res.headersSent) return next(err);
const requestedStatus = Number(err?.statusCode || err?.status);
const status = Number.isInteger(requestedStatus) && requestedStatus >= 400 && requestedStatus <= 599
? requestedStatus
: 500;
console.error(`[未处理错误] ${req.method} ${req.originalUrl}`, {
message: err?.message,
stack: err?.stack
});
return res.status(status).json({
success: false,
message: status >= 500 ? '服务器内部错误' : (err?.message || '请求处理失败')
});
}
module.exports = { expressErrorHandler };