сижу, туплю сильно. Что мы имеет, REST модуль это сборка модулей которые работают на REST, и пишут в базу, MyTcpService, небольшой сервис для общения между сервером и устройствами (на TCP потоком байт), выступает как сервис-траслятор, переводит нормальные читаемые запросы в байты и пуляет их на устройство и наоборот. В TCP использую один из сервисов который описан внутри модуля который импортируется в RESTModule. При запуске выходит ошибка. Пытался уже и модуль с нужным сервисом передать внутрь app.module, и чисто его сервис (в обоих случаях указывая нужный сервис в провайдерах app), толку нет. Куда рыть?
MyTcpService использует PivotRepository, которого нету в контекстt этого модуля) Нужно добавить импорт соответствующего модуля, который экспортирует PivotRepository
Делал, не помогло...
Значит неправильно делали, покажите как пробовали
Ага, а теперь скрин содержимого PivotModule
Уберите отсюда PivotService из провайдеров
убрал, ошибка.
Такая же или уже другая?
У вас тайпорм импортируется в пивот модуле, у MyTcpSerivce нету доступа к репозиториям из того модуля
1) Быстрый фикс. Выпилить от сюда строчку с @InjectRepository(Pivot) и его использование из этого сервиса, всё сразу заработает 2) Нормально реорганизовать структуру модулей. Пример очень простого наброска, без разделения на инфраструктурные и бизнесовые модули и тд. AppModule: Imports: [TypeOrmModule.forRoot(тут конфиг), RestModule, PivotModule, TcpModule] TcpModule: imports: [PivotModule] -< Сюда можно добавить TypeOrmModule.forFeatue если нужно работать в бд с чем-то связанным именно с tcp, но не с Pivot и тд. providers: [TcpService] PivotModule: imports: [TypeOrmModule.forFeature([Тут нужные энтити конкретно для этого модуля])] controllers: [PivotController], providers: [PivotService] exports: [PivotService] Дальше мы уже в TcpService через конструктор прокидываем PivotService и работаем через него. Тут ответственность TcpService только общаться через tcp, всё остальное он должен делать через другие сервисы, например через PivotService, вызывая его методы
Спасибо))) буду думать и реализовывать)))
Выкидываем typeorm и ставим призму и все становится хорошо
Призма кроме типов ничего не даёт
Кодогенерацию, типобезопасность, кроссязычность
+ валидация sql при рантайме
Вот кстати, самое важное, поскольку лучше писать raw запросы, чем обмазываться билдером
Это как?
Скучаю за временами когда я писал на пыхе и делал все на raw, а щас отупел блять
Забыл главное - скорость и удобство разработки простых крудов, которых в большинстве проектов больше всего
Оно и в больший проектах сильно решает
Не, я про то, что с тайпорм можно решить проблемы, которые призма не решит. Ту же логику в сущности не перенесешь с призмой. Она крутая, но для кецсов где дёргать табличкт достаточно
Сам sql валидирует и переменные тоже
А призма может невалидный sql сгенерировать? Зачем его валидировать?
Он raw sql валидирует
В рантайме?
Обсуждают сегодня