NestJS Перехват ошибки парсинга Json запроса

Использую NestJS.

Запросы принимает единственный контроллер.

import { Controller, Post, Req, Header } from '@nestjs/common'
import { Request } from 'express'
import { RpcService } from './infrastructure/services/rpc/rpc.service'

@Controller()
export class AppController {
    constructor(
        private readonly rpcService: RpcService,
    ) {}

    @Post()
    @Header('Content-Type', 'application/json')
    async index(@Req() request: Request): Promise<object> {
        return this.rpcService.call(request.body)
    }
}

Если отправляю запрос с невалидным JSON в теле, то получаю вот такой ответ:

{
    "statusCode": 400,
    "error": "Bad Request",
    "message": "Unexpected end of JSON input"
}

Подскажите, где и как я могу получить тело запроса раньше этой ошибки, обработать самостоятельно и вернуть клиенту собственный ответ.

Пробовал для этого использовать Middleware и Exception filters. Не получилось, до них доходит дело только, если я отправляю валидный json. В случае с невалидным json до них выполнение не доходит. Проверка осуществляется где-то раньше. Очень хотелось бы узнать где и найти способ эту проверку перехватить.


Ответы (0 шт):