Ответ
В моем опыте работы с Nest.js были следующие сложности:
-
Сложность внедрения зависимостей (DI) на старте. При неправильной настройке модулей контейнер не может разрешить зависимости. Я сталкивался с ошибками вида:
// Nest can't resolve dependencies of the ServiceA (?). // Please make sure that the argument ServiceB at index [0] is available in the AppModule context.Решение — тщательно следить за тем, чтобы провайдеры были зарегистрированы в нужном модуле и область видимости (scope) была понятна.
-
Интеграция с ORM. При использовании TypeORM в сочетании с миграциями иногда возникали конфликты, особенно при работе в команде, когда состояние базы данных у разработчиков расходилось.
-
Тестирование. Мокирование сложных зависимостей, особенно кастомных провайдеров или сервисов, использующих декораторы (например,
@InjectRepository()), требовало большего количества boilerplate-кода по сравнению с простым Express-приложением. -
Производительность. Из-за множества слоев абстракции (декораторы, интерсепторы, пайпы) некоторые эндпоинты, особенно с тяжелой бизнес-логикой, могли показывать более высокую latency. Это требовало дополнительного профилирования и оптимизации.