17_异常拦截器

简介: 17_异常拦截器

异常拦截器是一个实现了ExceptionFilter接口的类,该类有一个接收两个参数的catch方法,可以通过该拦截器在请求接口失败时返回一些错误信息。本节我们演示的同样是全局异常拦截器

  1. 在common文件夹下新建一个filter.ts文件
import { ArgumentsHost, Catch, ExceptionFilter, HttpException } from '@nestjs/common';
import { Request, Response } from 'express';
// 和全局拦截器不一样,这里我们使用@Catch装饰器并且传入HttpException类
@Catch(HttpException)
export class HttpFilter implements ExceptionFilter {
  catch(exception: HttpException, host: ArgumentsHost) {
    // 获取http错误信息
    const ctx = host.switchToHttp();
    // 获取请求信息
    const request = ctx.getRequest<Request>();
    // 获取响应信息
    const response = ctx.getResponse<Response>();
    // 获取请求返回状态信息
    const status = exception.getStatus();
    // 返回一些内容
    response.status(status).json({
      success: false,
      time: new Date(),
      data: exception.message,
      status,
      path:request.url
    });
  }
}
  1. 在main.ts里注册
import { HttpFilter } from './common/filter';
app.useGlobalFilters(new HttpFilter());
目录
相关文章
|
安全 物联网 网络安全
|
存储 缓存 编解码
AVFormatContext封装层:理论与实战(一)
AVFormatContext封装层:理论与实战(一)
238 1
|
6月前
|
负载均衡 网络安全 网络虚拟化
双ISP(双互联网服务提供商)
双ISP(双互联网服务提供商)指同时接入两家网络服务商,通过冗余备份、负载均衡和路径优化提升网络稳定性、速度与安全性。适用于企业关键业务、跨境服务及家庭高需求用户。实现方式包括硬件(双WAN口路由器、双网卡服务器)、软件(BGP多线接入、VPN多路径)及运营商套餐。优点为更稳定、更快速、更强抗攻击能力;缺点是成本较高且配置复杂。适合外贸公司等对网络要求高的场景,需权衡成本与技术难度。
578 3
|
负载均衡 5G 网络性能优化
深入解析LTE(长期演进技术)的基本架构及其关键组件
深入解析LTE(长期演进技术)的基本架构及其关键组件
1392 2
|
9月前
|
机器学习/深度学习 计算机视觉 异构计算
YOLOv11改进策略【模型轻量化】| 替换骨干网络 CVPR-2023 FasterNet 高效快速的部分卷积块
YOLOv11改进策略【模型轻量化】| 替换骨干网络 CVPR-2023 FasterNet 高效快速的部分卷积块
564 11
YOLOv11改进策略【模型轻量化】| 替换骨干网络 CVPR-2023 FasterNet 高效快速的部分卷积块
|
机器学习/深度学习 算法 PyTorch
K-Nearest Neighbors
【10月更文挑战第02天】
238 5
|
关系型数据库 Linux 分布式数据库
rpm安装polarDB-PG的实践
安装PolarDB for PostgreSQL的实践,需要帮助到有同样需要的小伙伴
727 3
|
数据可视化 程序员 开发者
阿里云百炼这个平台不错
阿里云百炼这个平台不错
621 3
|
Prometheus 监控 Cloud Native
基于Prometheus搭建监控平台
基于Prometheus搭建监控平台
219 0
|
NoSQL 物联网 atlas