Size: a a a

Node.js — русскоговорящее сообщество

2020 December 19

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Артур Бердыев
у ты же пользователей не только создавать будешь так? их еще как минимум удалять и редактировать надо, так не логичнее ли вынести логику с юзерами в один контроллер, а логику авторизации в другой?
звучит разумно
источник

АБ

Артур Бердыев... in Node.js — русскоговорящее сообщество
ну для мелкого проекта может быть и сойдет, хотя я бы все арвно все разделил, да, идеально не получится и вес равно где-то будут протекать слои, но важно понимать почему ты разрешаешь этим слоям протекать, бывают случаи когда это удобнее
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Artem Zuev
и как это противоречит моим словам? контроллер знает, что в аргументе email должно прилететь мыло, дальше две ситуации:
1. контроллер знает, что сервис на вход ждет НЕПУСТУЮ строку мыльника... он проверяет эту строку и если пустая матерится
2. контроллер знает, что сервис на вход ждет просто  строку мыльника... он проверяет наличие этого параметра и ругается, если его нет
при чем тут тогда абстрагирование
источник

АБ

Артур Бердыев... in Node.js — русскоговорящее сообщество
хотя тут даже не слои, тут принцип единственной ответственности нарушается
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Артур Бердыев
хотя тут даже не слои, тут принцип единственной ответственности нарушается
"группируйте вместе вещи, которые изменяются по единой причине"
источник

PW

Pan Włodzimierz in Node.js — русскоговорящее сообщество
я щас думаю так:
роут:
(в моем случае это будет контроллер). тут буду проверять пустая ли почта, длинну пароля и тд.

дальше передаю в сервис это данные, если все в порядке. сервис проверяет существует ли юзер, генерирует фотку и тд.
если допустим у меня будет сервисАвторизации и я буду регать юзера, то ну как не крути у меня сервисАвторизации будет связан с юзерРепощиторием

потому что, если я вынесу например регистрацию (создание) юзера в юзерСервис, то тогда мне уже и не надо будет сервисАвторизации

вот
а эти сервисы связаны с резиториями (модели)
источник

АБ

Артур Бердыев... in Node.js — русскоговорящее сообщество
ну вот разрастется твой сервис, захочется вынести авторизацию в отдельный сервис, упс, а у нас тут создание юзеров
захочется сделать доп проверки в другом сервисе перед созданием юзера, упс, придется обмазаться зависимостями и смотреть как мешается мягкое с теплым
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Pan Włodzimierz
я щас думаю так:
роут:
(в моем случае это будет контроллер). тут буду проверять пустая ли почта, длинну пароля и тд.

дальше передаю в сервис это данные, если все в порядке. сервис проверяет существует ли юзер, генерирует фотку и тд.
если допустим у меня будет сервисАвторизации и я буду регать юзера, то ну как не крути у меня сервисАвторизации будет связан с юзерРепощиторием

потому что, если я вынесу например регистрацию (создание) юзера в юзерСервис, то тогда мне уже и не надо будет сервисАвторизации

вот
а эти сервисы связаны с резиториями (модели)
сервис авторизации у тебя будет вызывать юзер сервис и генерировать jwt
источник

PW

Pan Włodzimierz in Node.js — русскоговорящее сообщество
если я вынеси регистрацию в юзерСервис, то в сервисАвторизации останется только рефрешТокена и логин
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Pan Włodzimierz
если я вынеси регистрацию в юзерСервис, то в сервисАвторизации останется только рефрешТокена и логин
ну и норм
источник

PW

Pan Włodzimierz in Node.js — русскоговорящее сообщество
ну я думал только что, да
но типа как-то тогда выходит, что сервисАвторизации это подсервисЮзер
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Pan Włodzimierz
я щас думаю так:
роут:
(в моем случае это будет контроллер). тут буду проверять пустая ли почта, длинну пароля и тд.

дальше передаю в сервис это данные, если все в порядке. сервис проверяет существует ли юзер, генерирует фотку и тд.
если допустим у меня будет сервисАвторизации и я буду регать юзера, то ну как не крути у меня сервисАвторизации будет связан с юзерРепощиторием

потому что, если я вынесу например регистрацию (создание) юзера в юзерСервис, то тогда мне уже и не надо будет сервисАвторизации

вот
а эти сервисы связаны с резиториями (модели)
> роут: тут буду проверять пустая ли почта, длинну пароля и тд.

ну, как видишь, в чате разошлись мнения о том, надо ли это валидировать в роуте или сервисе
источник

PW

Pan Włodzimierz in Node.js — русскоговорящее сообщество
ну та да
я бы в сервис засунул все и с концами
источник

PW

Pan Włodzimierz in Node.js — русскоговорящее сообщество
пока не вижу для себя + и -
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Pan Włodzimierz
ну я думал только что, да
но типа как-то тогда выходит, что сервисАвторизации это подсервисЮзер
а если тебе понадобится создавать юзеров в админке или через тесты?
источник

PW

Pan Włodzimierz in Node.js — русскоговорящее сообщество
аргумент
источник

PW

Pan Włodzimierz in Node.js — русскоговорящее сообщество
щас вынесу всё-таки создание юзера в юзерсерв
источник

AZ

Artem Zuev in Node.js — русскоговорящее сообщество
Pan Włodzimierz
щас вынесу всё-таки создание юзера в юзерсерв
по сути у тебя как бы две сущности...
первая - непосредственно сами юзеры (чтение, создание, изменение)...
и вторая - в некотором роде "сущность" сессии (создание, проверка, удаление)...

И Павел на все 100% прав с разделением этих сущностей на два сервиса/модуля
источник

PW

Pan Włodzimierz in Node.js — русскоговорящее сообщество
Artem Zuev
по сути у тебя как бы две сущности...
первая - непосредственно сами юзеры (чтение, создание, изменение)...
и вторая - в некотором роде "сущность" сессии (создание, проверка, удаление)...

И Павел на все 100% прав с разделением этих сущностей на два сервиса/модуля
не совсем понял
источник

AZ

Artem Zuev in Node.js — русскоговорящее сообщество
ну если перенести совсем на жизнь, то отдел кадров оформляет сотрудников на работу, заводит личные дела, изменяет данные в случае чего... но пускает в офис, оформляет пропуска и контролирует доступность этажей/кабинетов служба безопасности, а не кадровики...
тут то же самое - юзеры = отдел кадров, авторизация = служба безопасности
источник