Size: a a a

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

2020 April 22

LK

L K in NestJS — русскоязычное сообщество
Алексей Кореньков
Добрый день. Направьте на путь истинный и верный)

Делаю класс для работы с сущностью, не сервис, не модель.
Встал вопрос получения данных от моделей, и тут понял что DI использовать (если не прав, поправьте, пожалуйста) можно только в конструкторе. А конструктор уже используется для установки верных значений.
Скажите, пожалуйста:
1) DI только в конструкторе, по другому никак не заинжектить сервис модели?
2) Как в таком случае можно поступить:
  2.1 прокинуть сервис из места где создаю экземпляр класса,
  2.2 установить сервис методом (но тогда проблема, что вызов методов регламентирован),
  2.3 сделал метод init и в нем установить начальные значения, а конструктор освободить для DI?
Как правильнее поступать в таком случае, примеры в сети найти не удалось.
какой еще инжект сервиса в модель
забудьте про это
ваши доменные сущности не должны зависеть от каки-то сервисов
максимум что можно сделать это то что метод сущности будет ожидать имплементацию какого-то интерфейса
источник

АК

Алексей Кореньков in NestJS — русскоязычное сообщество
L K
какой еще инжект сервиса в модель
забудьте про это
ваши доменные сущности не должны зависеть от каки-то сервисов
максимум что можно сделать это то что метод сущности будет ожидать имплементацию какого-то интерфейса
не, модели я не трогаю
отдельный класс со своей логикой, который 1 раз (пока) хочет получить данные из базы
источник

АК

Алексей Кореньков in NestJS — русскоязычное сообщество
Artur
Если твой класс инжектбл то как ты планируешь аргументы в конструктор прокидывать?
в этом и вопрос)
он не инжектбл, планировал его через фабрику создавать
источник

🏡K

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

LK

L K in NestJS — русскоязычное сообщество
Алексей Кореньков
в этом и вопрос)
он не инжектбл, планировал его через фабрику создавать
какую задачу решаешь, почему нужно через конструктор ?
источник

АК

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

АК

Алексей Кореньков in NestJS — русскоязычное сообщество
L K
какую задачу решаешь, почему нужно через конструктор ?
логику валидации и подготовки объектов для записи в базу выношу в класс
источник

🏡K

🏡 ILshat Khamitov in NestJS — русскоязычное сообщество
Алексей Кореньков
логику валидации и подготовки объектов для записи в базу выношу в класс
делай все на основе диай неста и не парься
источник

🏡K

🏡 ILshat Khamitov in NestJS — русскоязычное сообщество
или возьми type-di если не хочешь от неста зависить, как он во фронте работает не знаю
источник

🏡K

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

АК

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

NS

Nurdaulet Satbergen in NestJS — русскоязычное сообщество
Доброго времени суток всем. Не подскажете как реализовать access control в nest есть ли паттерны?
источник

NS

Nurdaulet Satbergen in NestJS — русскоязычное сообщество
Или библиотеки
источник

AA

Andrey Ashurko in NestJS — русскоязычное сообщество
вопрос: как для Graphql контекста прокинуть объект response (reply) от Fastify?

в доке Apollo сказано что Fastify прокидывает пустой объект для контекста
https://www.apollographql.com/docs/apollo-server/api/apollo-server/#apolloserver

по факту прокидывается только Request
источник

S

Sviatoslav in NestJS — русскоязычное сообщество
Nurdaulet Satbergen
Доброго времени суток всем. Не подскажете как реализовать access control в nest есть ли паттерны?
про рекламирую свой модуль, набираешь)
npx nestjs-modules
и там в самом конце есть библиотечка под access control
источник

NS

Nurdaulet Satbergen in NestJS — русскоязычное сообщество
Sviatoslav
про рекламирую свой модуль, набираешь)
npx nestjs-modules
и там в самом конце есть библиотечка под access control
Спасибо
источник

S

Sviatoslav in NestJS — русскоязычное сообщество
Andrey Ashurko
вопрос: как для Graphql контекста прокинуть объект response (reply) от Fastify?

в доке Apollo сказано что Fastify прокидывает пустой объект для контекста
https://www.apollographql.com/docs/apollo-server/api/apollo-server/#apolloserver

по факту прокидывается только Request
GraphQLModule.forRoot({
     debug: true,
     playground: true,
     autoSchemaFile: true,
     context: (context) => {
       return { ...context }
     }
     ),
   }),
источник

NS

Nurdaulet Satbergen in NestJS — русскоязычное сообщество
Sviatoslav
про рекламирую свой модуль, набираешь)
npx nestjs-modules
и там в самом конце есть библиотечка под access control
К сожалению не нашёл в списке
источник

AA

Andrey Ashurko in NestJS — русскоязычное сообщество
Sviatoslav
GraphQLModule.forRoot({
     debug: true,
     playground: true,
     autoSchemaFile: true,
     context: (context) => {
       return { ...context }
     }
     ),
   }),
не работает, туда только Request приходит
источник

NS

Nurdaulet Satbergen in NestJS — русскоязычное сообщество
Может ссылку скинете вдруг я не там смотрю
источник