error-handler.ts 647 B

1234567891011121314151617
  1. import type { Request, Response, NextFunction } from 'express';
  2. import { AppError } from '../errors/app-error.js';
  3. import { sendError } from './response.js';
  4. export function errorHandler(err: Error, _req: Request, res: Response, _next: NextFunction): void {
  5. if (err instanceof AppError) {
  6. sendError(res, err.statusCode, err.errorCode, err.message, err.details);
  7. return;
  8. }
  9. console.error('[ErrorHandler] 未预期的服务器错误:', err);
  10. const message =
  11. process.env.NODE_ENV === 'production'
  12. ? '服务器内部错误'
  13. : err.message || '服务器内部错误';
  14. sendError(res, 500, 'INTERNAL_ERROR', message);
  15. }