0
点赞
收藏
分享

微信扫一扫

小满nestjs(第十七章 nestjs 异常拦截器)


上一章我们讲了全局响应拦截,这一章我们来讲一下全局异常拦截器

common下面新建filter.ts

小满nestjs(第十七章 nestjs 异常拦截器)_拦截器

让我们创建一个异常过滤器,它负责捕获作为​​HttpException​​​类实例的异常,并为它们设置自定义响应逻辑。为此,我们需要访问底层平台 ​​Request​​​和 ​​Response​​​。我们将访问​​Request​​​对象,以便提取原始 ​​url​​​并将其包含在日志信息中。我们将使用 ​​Response.json()​​​方法,使用 ​​Response​​对象直接控制发送的响应。

import { ExceptionFilter, Catch, ArgumentsHost,HttpException } from '@nestjs/common'

import {Request,Response} from 'express'

@Catch(HttpException)
export class HttpFilter implements ExceptionFilter {
catch(exception:HttpException, host: ArgumentsHost) {
const ctx = host.switchToHttp()
const request = ctx.getRequest<Request>()
const response = ctx.getResponse<Response>()

const status = exception.getStatus()

response.status(status).json({
data:exception.message,
time:new Date().getTime(),
success:false,
path:request.url,
status
})
}
}

注册全局异常过滤器

app.useGlobalFilters(new HttpFilter())

小满nestjs(第十七章 nestjs 异常拦截器)_json_02

 

小满nestjs(第十七章 nestjs 异常拦截器)_servlet_03

 

举报

相关推荐

0 条评论