异常拦截器
正确的说应该是「异常过滤器」而不是拦截器
定义全局异常过滤器 @@16
文件放在 src/commone/filter.ts
import { ArgumentsHost, Catch, ExceptionFilter, HttpException } from '@nestjs/common'
import { Request, Response } from 'express'
@Catch()
export class HttpFilter implements ExceptionFilter {
catch(exception: HttpException, host: ArgumentsHost) {
const cxt = host.switchToHttp()
const next = cxt.getNext()
const request = cxt.getRequest<Request>()
const response = cxt.getResponse<Response>()
const status = exception.getStatus()
response.status(status).json({
success: false,
tiem: new Date(),
data: exception.message,
status,
path: request.url,
})
}
}
在main.ts
中使用
// 异常过滤器
app.useGlobalFilters(new HttpFilter())