Spaces:
Sleeping
Sleeping
File size: 731 Bytes
90647f1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | /**
* 错误处理中间件
*/
import { Request, Response, NextFunction } from 'express';
export function errorHandler(
err: Error,
req: Request,
res: Response,
next: NextFunction
): void {
console.error('[Error]', err.message, err.stack);
// 根据错误类型返回不同状态码
const status = (err as any).status || 500;
res.status(status).json({
error: err.name || 'InternalError',
message: err.message,
timestamp: Date.now(),
});
}
// 异步错误捕获包装器
export function asyncHandler(fn: (req: Request, res: Response, next: NextFunction) => Promise<any>) {
return (req: Request, res: Response, next: NextFunction) => {
Promise.resolve(fn(req, res, next)).catch(next);
};
} |