You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

errorHandler.js 656B

12345678910111213141516171819202122232425
  1. /**
  2. * 全局错误处理中间件
  3. * @param {Error} err - 错误对象
  4. * @param {Request} req - 请求对象
  5. * @param {Response} res - 响应对象
  6. * @param {NextFunction} next - 下一个中间件函数
  7. */
  8. const errorHandler = (err, req, res, next) => {
  9. console.error('错误:', err);
  10. // 默认错误状态码和消息
  11. const statusCode = err.statusCode || 500;
  12. const message = err.message || '服务器内部错误';
  13. res.status(statusCode).json({
  14. success: false,
  15. error: {
  16. message,
  17. statusCode,
  18. ...(process.env.NODE_ENV === 'development' && { stack: err.stack })
  19. }
  20. });
  21. };
  22. module.exports = { errorHandler };