Size: a a a

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

2019 May 27

НК

Никита Кадиров in Next.js — русскоговорящее сообщество
Kevin Detry
а где его тогда держать?
с некстом и в куки, выходит, не положишь, куки же тоже общие
да с чего они общие? куки же на клиенте хранятся в  любом случае
источник

KD

Kevin Detry in Next.js — русскоговорящее сообщество
Никита Кадиров
да с чего они общие? куки же на клиенте хранятся в  любом случае
сервер инициализирует стор и сам делает запросы на апи
куки тут уже не клиентские, а серверные (некста), не?
источник

IS

Ivan Sequend 👾 in Next.js — русскоговорящее сообщество
вообще по-хорошему авторизацию через сессии делать
источник

НК

Никита Кадиров in Next.js — русскоговорящее сообщество
Kevin Detry
сервер инициализирует стор и сам делает запросы на апи
куки тут уже не клиентские, а серверные (некста), не?
у тебя сервер кастомный или стандартный сервер некста?
источник

KD

Kevin Detry in Next.js — русскоговорящее сообщество
Никита Кадиров
у тебя сервер кастомный или стандартный сервер некста?
второе
источник

EM

Eugene M in Next.js — русскоговорящее сообщество
Kevin Detry
а где его тогда держать?
с некстом и в куки, выходит, не положишь, куки же тоже общие
источник

НК

Никита Кадиров in Next.js — русскоговорящее сообщество
Kevin Detry
второе
я стандартный никогда не использовал, но в кастомном можно спокойно распарсить клиентские куки и их использовать
источник

EM

Eugene M in Next.js — русскоговорящее сообщество
посмотри пример с with-apollo, как там инициализация стора проходит
источник

KD

Kevin Detry in Next.js — русскоговорящее сообщество
ладно, распишу я кейс целиком, чтобы не задавать вопросов наполовину
есть модуль онлайн-записи в салон красоты
некст хотелось заюзать для того, чтобы клиенту прилетал сразу готовый список услуг, сотрудников и т.д., а не как в случае с CRA, когда это грузилось на клиенте
пока я сделал так, что в квери-параметрах передается код базы
онлайн-модуль сидит в айфрейме, поэтому мне не сильно принципиально, насколько зафакаплена адресная строка
для загрузки данных нужно получить токен базы данных, просто отправляется на сервак код базы, в ответ прилетает токен, никаких секретов, данные и так публичные
в целом, даже если токена бы не было, все равно, нужен хотя бы код базы для загрузки инфы
соответственно, у разных клиентов разные коды баз
все, что я хотел — это чтобы сервак по квери-параметрам отдал мне отрендеренную первую страницу и уже снапшот уже заполненного стора
но где держать код базы, не запихивая логику запросов непосредственно в экшены mobx-state-tree и не подсовывая этот код в каждом запросе — вот чего понять не могу

отдельная песня еще в том, что на разных базах разная первая страница, где-то надо выбирать пол, где-то не надо и т.д., это у меня тоже пока считается в сторе, поэтому пока ничего лучше, чем редиректить на клиенте в рендере, я не придумал
источник

НК

Никита Кадиров in Next.js — русскоговорящее сообщество
Kevin Detry
ладно, распишу я кейс целиком, чтобы не задавать вопросов наполовину
есть модуль онлайн-записи в салон красоты
некст хотелось заюзать для того, чтобы клиенту прилетал сразу готовый список услуг, сотрудников и т.д., а не как в случае с CRA, когда это грузилось на клиенте
пока я сделал так, что в квери-параметрах передается код базы
онлайн-модуль сидит в айфрейме, поэтому мне не сильно принципиально, насколько зафакаплена адресная строка
для загрузки данных нужно получить токен базы данных, просто отправляется на сервак код базы, в ответ прилетает токен, никаких секретов, данные и так публичные
в целом, даже если токена бы не было, все равно, нужен хотя бы код базы для загрузки инфы
соответственно, у разных клиентов разные коды баз
все, что я хотел — это чтобы сервак по квери-параметрам отдал мне отрендеренную первую страницу и уже снапшот уже заполненного стора
но где держать код базы, не запихивая логику запросов непосредственно в экшены mobx-state-tree и не подсовывая этот код в каждом запросе — вот чего понять не могу

отдельная песня еще в том, что на разных базах разная первая страница, где-то надо выбирать пол, где-то не надо и т.д., это у меня тоже пока считается в сторе, поэтому пока ничего лучше, чем редиректить на клиенте в рендере, я не придумал
понятнее не стало.

"но где держать код базы, не запихивая логику запросов непосредственно в экшены mobx-state-tree и не подсовывая этот код в каждом запросе". в чем проблема с этим решением? почему не можешь подсовывать код базы в запрос на клиенте?
источник

НК

Никита Кадиров in Next.js — русскоговорящее сообщество
с модулем онлайн записи ты как взаимодействуешь? http запрос или как?
источник

KD

Kevin Detry in Next.js — русскоговорящее сообщество
Никита Кадиров
понятнее не стало.

"но где держать код базы, не запихивая логику запросов непосредственно в экшены mobx-state-tree и не подсовывая этот код в каждом запросе". в чем проблема с этим решением? почему не можешь подсовывать код базы в запрос на клиенте?
могу, просто много бойлерплейта
если все запросы вынесены в отдельные функции, которые внутри дергают инстанс ky (аналог axios'а), то так получается удобнее вроде как
а если внутри экшенов вызывать эти функции, но каждый раз туда передавать токен, то вся суть изоляции запросов от экшенов теряется, имхо
источник

KD

Kevin Detry in Next.js — русскоговорящее сообщество
Никита Кадиров
с модулем онлайн записи ты как взаимодействуешь? http запрос или как?
сам модуль — это именно морда, т.е. в данном случае страница на нексте
или я не понял вопроса
источник

НК

Никита Кадиров in Next.js — русскоговорящее сообщество
Kevin Detry
могу, просто много бойлерплейта
если все запросы вынесены в отдельные функции, которые внутри дергают инстанс ky (аналог axios'а), то так получается удобнее вроде как
а если внутри экшенов вызывать эти функции, но каждый раз туда передавать токен, то вся суть изоляции запросов от экшенов теряется, имхо
зачем изолировать запросы от экшенов?
источник

KD

Kevin Detry in Next.js — русскоговорящее сообщество
Никита Кадиров
зачем изолировать запросы от экшенов?
с одной стороны, так непосредственно в экшенах кода меньше стало, и стало понятнее, что происходит, и типизировать проще
и некоторые запросы идут мимо стора
источник

НК

Никита Кадиров in Next.js — русскоговорящее сообщество
Kevin Detry
с одной стороны, так непосредственно в экшенах кода меньше стало, и стало понятнее, что происходит, и типизировать проще
и некоторые запросы идут мимо стора
это ты сейчас в терминах mobx пытаешься объяснить зачем это или как? потому, что я не работал с mobx и не понимаю в чем дело вообще.
источник

НК

Никита Кадиров in Next.js — русскоговорящее сообщество
у тебя есть доступ к глобальному стору в функции, которая формирует запрос к апи?
источник

НК

Никита Кадиров in Next.js — русскоговорящее сообщество
в конце концов положи token в sessionStorage и доставай его оттуда в функции, которая формирует запрос. решение не очень, но если похуй на защищенность токена, то будет "удобнее".
источник

KD

Kevin Detry in Next.js — русскоговорящее сообщество
Никита Кадиров
у тебя есть доступ к глобальному стору в функции, которая формирует запрос к апи?
да
но это, как выяснилось, плохая идея, потому что глобальный стор может оказаться не тем при нескольких клиентах
источник

НК

Никита Кадиров in Next.js — русскоговорящее сообщество
Kevin Detry
да
но это, как выяснилось, плохая идея, потому что глобальный стор может оказаться не тем при нескольких клиентах
глобальный стор на КЛИЕНТЕ
источник