на второй делаю запрос через axios, второй кидает HttpException("текст ошибки", 400).
а первый возвращает что-то типа { "statusCode": 400 }. как сделать так, чтобы возвращалось с первого в точности то же самое, что было кинуто на втором?
думал, ExceptionFilter поймает, сделал свой фильтр (как тут написано: https://stackoverflow.com/questions/72711256/nestjs-in-conjunction-with-axios) @Catch(AxiosError) - все равно не ловит. будто там не AxiosError, а что-то другое
причем, если сделать trycatch(error), то я могу поймать и из error вытащить нужные данные. но у меня 100 запросов. не могу ж я каждый оборачивать в trycatch
try { return await axios.request(config); } catch (e: any) { if (axios.isAxiosError(e)) { this.logger.error(e); if (e instanceof AxiosError) { throw new HttpException(e?.response?.data, e?.response?.status ?? 500); } } else if (e instanceof Error) { throw new HttpException("Failed to fetch data", HttpStatus.GATEWAY_TIMEOUT); } throw e; }
try { return await axios.request(config); } catch (e: any) { if (axios.isAxiosError(e)) { this.logger.error(e); if (e instanceof AxiosError) { throw new HttpException(e?.response?.data, e?.response?.status ?? 500); } } else if (e instanceof Error) { throw new HttpException("Failed to fetch data", HttpStatus.GATEWAY_TIMEOUT); } throw e; }
Обсуждают сегодня