ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

NestJS入门7:增加异常过滤器

2026/9/12 20:49:43 拓冰建站 浏览量
NestJS入门7:增加异常过滤器

 前文参考:

NestJS入门1

NestJS入门2:创建模块

NestJS入门3:不同请求方式前后端写法

NestJS入门4:MySQL typeorm 增删改查

NestJS入门5:加入Swagger

NestJS入门6:日志中间件

本文代码基于上一篇文章《NestJS入门6:日志中间件》

1. 标准异常写法

在user.controller.ts中加入以下语句

postman中测试如下:

 2. 安装过滤器

nest g filter common/filter/http-exception

安装完成后在common/filter下增加两个文件

3. 修改http-exception.filter.ts

将http-exception.filter.ts

修改为:

import { ArgumentsHost, Catch, ExceptionFilter, HttpException } from '@nestjs/common';
import { Request, Response } from 'express';@Catch(HttpException)
export class HttpExceptionFilter implements ExceptionFilter {catch(exception: HttpException, host: ArgumentsHost) {const ctx = host.switchToHttp();const response = ctx.getResponse<Response>();const request = ctx.getRequest<Request>();const status = exception.getStatus();const msg = exception.getResponse().toString();response.status(status).json({statusCode: status,  //HttpException的statustimestamp: new Date().toISOString(), // 时间戳path: request.url, //调用路径message: msg, //错误说明});}
}

4. main.ts创建全局过滤器

增加以下一条语句

5. 验证

user.controller.ts依然是这个写法

使用Postman测试如下