Size: a a a

NestJS — русскоязычное сообщество

2020 February 28

EK

Evgheny Kalkutin in NestJS — русскоязычное сообщество
вопрос)
откуда можно кидать HttpException с контроллера или с сервиса?

дело в том что я я делаю POST запрос в БД, и хочу в сервисе обработать исключение на дублекат, и с сервиса кидать HttpException. Это работает в рантайме, но в юнит тестах jest не хочет работать с этим. Ругается на то что возращаемый тип сервиса Promise и Error
источник

EK

Evgheny Kalkutin in NestJS — русскоязычное сообщество
источник

EK

Evgheny Kalkutin in NestJS — русскоязычное сообщество
источник

EK

Evgheny Kalkutin in NestJS — русскоязычное сообщество
в документации все HttpExceptions - в контроллерах =\
источник

S

Sviatoslav in NestJS — русскоязычное сообщество
А ты представь что котроллер это адаптер, который адаптирует http запрос к интерфейсу сервиса, кроме него еще могут быть сокеты или граф... тогда и вопросы отпадут.
источник

EK

Evgheny Kalkutin in NestJS — русскоязычное сообщество
я понимаю это, но исключение - исключению рознь
источник

EK

Evgheny Kalkutin in NestJS — русскоязычное сообщество
если сделать вместо throw HttpException (nestjs) обычный throw new Error() то поведение совсем другое
источник

S

Sviatoslav in NestJS — русскоязычное сообщество
сервис принимает данные по интерфейсу и отдает или данные или свое исключение которое контроллер как адаптер должен обработать
источник

EK

Evgheny Kalkutin in NestJS — русскоязычное сообщество
я унаследовал Exception extends HttpException, посему вот интересуюсь нормально ли в серсиве использовать так.
источник

IK

ILshat Khamitov in NestJS — русскоязычное сообщество
Evgheny Kalkutin
если сделать вместо throw HttpException (nestjs) обычный throw new Error() то поведение совсем другое
Кастомные ошибки пуляю с сервиса,

в ресте, графе конверчу их в то что надо, меж мс кастомные летают
источник

EK

Evgheny Kalkutin in NestJS — русскоязычное сообщество
поясни что знач пуляешь )
источник

IK

ILshat Khamitov in NestJS — русскоязычное сообщество
Throw
источник

IK

ILshat Khamitov in NestJS — русскоязычное сообщество
)
источник

IK

ILshat Khamitov in NestJS — русскоязычное сообщество
Сервис не знает про то куда выкинится, есть еще и консоль у меня там теже  сервисы
источник

EK

Evgheny Kalkutin in NestJS — русскоязычное сообщество
значит у тебя стоит try/catch и в сервисе и в контроллере?
источник

IK

ILshat Khamitov in NestJS — русскоязычное сообщество
Иногда сервис через фабрику создаётся аж на фронте
источник

EK

Evgheny Kalkutin in NestJS — русскоязычное сообщество
ILshat Khamitov
Сервис не знает про то куда выкинится, есть еще и консоль у меня там теже  сервисы
это уже понемногу помогает мне понять логику, продолжай
источник

IK

ILshat Khamitov in NestJS — русскоязычное сообщество
Evgheny Kalkutin
значит у тебя стоит try/catch и в сервисе и в контроллере?
Фильтры есть, глобальные перехватчики, там и конверчу
источник

IK

ILshat Khamitov in NestJS — русскоязычное сообщество
Трай катчом не ловлю
источник

EK

Evgheny Kalkutin in NestJS — русскоязычное сообщество
мм,
источник