Здравствуйте. Я написал фильтр, который выводит данные в указанном формате, но, если послать запрос с кривым json например, то фильтр игнорируется и подключается стандартный nest BadExceptionsRequest, я пока пришёл к такому решению или костылю, не знаю правильно ли это, интерсептор попробовал по докам, он не перекрыл это.
import {ExceptionFilter, Catch, ArgumentsHost, HttpException, HttpCode} from '@nestjs/common';
import { Request, Response } from 'express';
@Catch(HttpException)
export class HttpExceptionFilter {
catch(exception: HttpException, host: ArgumentsHost) {
const ctx = host.switchToHttp();
const response = ctx.getResponse<Response>();
const request = ctx.getRequest<Request>();
const status = exception.getStatus();
let data = exception.getResponse();
if(exception.getStatus() === 400) {
data = {
status: 400,
message: 'Bad request'
}
}
response
.status(status)
.json({
status: status,
response: data
});
}
}
Это нормальная практика или есть другой вариант?
if(exception.getStatus() === 400) {
data = {
status: 400,
message: 'Bad request'
}
}
Спасибо.