Size: a a a

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

2020 March 08

W

Wacker in NestJS — русскоязычное сообщество
Andrey Melikhov
IoC работает в рантайме, в рантайме нет интерфейсов
а, тупанул, извини. Получается неполная поддержка IoC?
источник

AM

Andrey Melikhov in NestJS — русскоязычное сообщество
Мы недавно разбирали как писать действительно развязанный код, тут в общем-то два варианта — писать @inject() по токену (и тут уже можно работать с интерфейсами) либо делать абстрактные классы и регистрировать в провайдере useClass
источник

AM

Andrey Melikhov in NestJS — русскоязычное сообщество
Wacker
а, тупанул, извини. Получается неполная поддержка IoC?
IoC работает, но ты получаешь Dependency Injection без Dependency Inversion. Это не страшно в простом коде, но даёт вот такие вопросы "если я получаю все зависимости из контейнера, то какого чёрта я пишу импорт"
источник

W

Wacker in NestJS — русскоязычное сообщество
Andrey Melikhov
IoC работает, но ты получаешь Dependency Injection без Dependency Inversion. Это не страшно в простом коде, но даёт вот такие вопросы "если я получаю все зависимости из контейнера, то какого чёрта я пишу импорт"
хм. Как в Java перекатитсья?)))))
источник

AM

Andrey Melikhov in NestJS — русскоязычное сообщество
При запуске инжектор nest сканит через декораторы все модули по цепочке, получает список провайдеров и регистрирует в контейнере все инстансы и фабрики, потом начинает раздавать их в конкретные экземпляры. Вот и вся магия
источник

AM

Andrey Melikhov in NestJS — русскоязычное сообщество
Wacker
Есть модуль Users, там работаю с UserRepository. Меня он просит указать где это? в App.module или Users.module?
в твоей ошибке видно, что он не нашёл в инжекторе экземпляр класса стоящего первым параметром в UserService. Его нет в доступных провайдерах
источник

AM

Andrey Melikhov in NestJS — русскоязычное сообщество
Т.е. тебе надо зарегистрировать свой UserRepository как провайдер.
источник

DT

Denchik Tymokhin in NestJS — русскоязычное сообщество
Andrey Melikhov
Т.е. тебе надо зарегистрировать свой UserRepository как провайдер.
мне аж немного стыдно стало, Андрей +++
источник

W

Wacker in NestJS — русскоязычное сообщество
Andrey Melikhov
Т.е. тебе надо зарегистрировать свой UserRepository как провайдер.
Андрей, спасбо!!! 2-й раз развернутый ответ даешь!
источник

W

Wacker in NestJS — русскоязычное сообщество
Andrey Melikhov
в твоей ошибке видно, что он не нашёл в инжекторе экземпляр класса стоящего первым параметром в UserService. Его нет в доступных провайдерах
Полседний вопрос)))) Я создаю userRepository в сервисе. Откуда мне его импортировать в модуль?

или экспортировать его из сервиса?
источник

Ti

Time is the side effect in NestJS — русскоязычное сообщество
Ни то ни другое
источник

DT

Denchik Tymokhin in NestJS — русскоязычное сообщество
если юзаешь TypeOrm, то через ее модуль
источник

DT

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

Ti

Time is the side effect in NestJS — русскоязычное сообщество
Вон, TaskRepository отдельно создан, поэтому его можно импортировать
источник

Ti

Time is the side effect in NestJS — русскоязычное сообщество
А из сервиса его конечно никак не экспортировать
источник

W

Wacker in NestJS — русскоязычное сообщество
Denchik Tymokhin
Юзаю TypeORM
источник

W

Wacker in NestJS — русскоязычное сообщество
Time is the side effect
А из сервиса его конечно никак не экспортировать
получается мне нужно отдельно скрипты с репозиториями создавать?
источник

W

Wacker in NestJS — русскоязычное сообщество
хм, понял
источник

Ti

Time is the side effect in NestJS — русскоязычное сообщество
Wacker
получается мне нужно отдельно скрипты с репозиториями создавать?
Скрипты))) Ну типа того, если хочешь реюзабельный
источник

W

Wacker in NestJS — русскоязычное сообщество
Denchik а можно посмотреть файл с task репозиторием?
источник