207 похожих чатов

Подскажите как быть, чтобы не дублить функционал и решить проблему

с baseUrl. Суть в том, что все это болтается в докерах, и baseUrl указан для контейнера, чтобы ssr запросы работали правильно. Однако в простой функции loadVillages должно работать без baseUrl а просто /api/bla-bla потому что на фронте api это просто location того же nginx сервера. Как сделать чтобы это все было нормально и без костылей?

29 ответов

17 просмотров

как отдельный вариант - вывести все запросы в middleware и там логировать пути

Igor Tuyakpaev
как отдельный вариант - вывести все запросы в midd...

Мне не надо логировать. Логировать это не задача фронта. Мне нужно нормально распределитть, чтобы ssr запросы уходили в условно http://nginx:8080 а с фронта запросы уходили на local.domain.com

🗡 𝓓𝒶𝓈𝓉𝒶𝓃𝒶𝓇𝓸𝓃
Мне не надо логировать. Логировать это не задача ф...

логировать в плане логику накрутить) не так выразился

Igor Tuyakpaev
как отдельный вариант - вывести все запросы в midd...

Тоже лишний код, так как на бою, в кубере они будут находиться в разных подах, и там не будет этой проблемы, просто все запросы и из ssr и из фронат будут уходить на сторонний для него ресурс. На локали просто очень не удобно это все получается

🗡 𝓓𝒶𝓈𝓉𝒶𝓃𝒶𝓇𝓸𝓃
Тоже лишний код, так как на бою, в кубере они буду...

Доброго дня всем. Вчера вот обращался по проблеме. Решил временно так. Но мне все равно кажется дичью вот это. Две функции, практически идентичные, но одна на фронте, другая на SSR. Костыль c setBaseUrl потому что с фронта мы реально можем просто как /api/... обратиться а с бэка это соседний контейнер, например http://nginx:8080 Эта дичь с одинаковым fecth и фронтовым методом как то можно нормально решить?

🗡 𝓓𝒶𝓈𝓉𝒶𝓃𝒶𝓇𝓸𝓃
screenshot Доброго дня всем. Вчера вот обращался по проблеме....

Как тебе вариант с выносом запроса к axios в отдельную функцию, принимающую axios и флаг "ssr-не ssr", которая будет дописывать baseUrl уже на месте (без использования метода setBaseUrl)? А, и такое использование fetch - deprecated с версии 2.12. К тому же ты можешь разрешить фетчить только на стороне клиента : за это отвечает свойство экземпляра fetchOnServer

Damir
Как тебе вариант с выносом запроса к axios в отдел...

1. Вариант наверное. Надо только флаг найти ssr и не ssr. 2. Что то не понял, что там депрекейтед https://nuxtjs.org/docs/2.x/features/data-fetching. Какое использование?

Vladimir Sadchikov
новый fetch можно вызывать this.$fetch

Да, это видел. Но это не было решением из за разных точек входа baseUrl

Vladimir Sadchikov
новый fetch можно вызывать this.$fetch

Спасибо в любом случае, теперь чтонибудь придумаю

🗡 𝓓𝒶𝓈𝓉𝒶𝓃𝒶𝓇𝓸𝓃
screenshot Доброго дня всем. Вчера вот обращался по проблеме....

А у тебя обращение к this в данном случае точно происходит корректно? Просто контекст ssr, в консоли ошибок не увидишь, а такое использование fetch с контекстом, насколько помню, не подразумевает использование this Я предложу, по итогу, вот что : Откажись от mounted, используй либо asyncData, либо fetch в новой нотации (2.12+). По свойству process.server ты сможешь понять какое у тебя окружение и нужен ли baseUrl (но я бы посоветовал все равно выставить fetchOnServer: false и посмотреть решит ли это твою проблему)

Damir
А у тебя обращение к this в данном случае точно пр...

Насчет корректно, тут идиологически как то не правильно все. Но как ни странно это работает и на ssr стороне и на mounted. Насчет использования такого this в fetch это прям в документации написан такой пример, ниже скину. В консоли ошибки ssr есть, и в консоли сборщика в докер контейнере и в бразуерной, он если что не так выкидывает в консоль браузера как vueSsr ошибку. За подсказки спасибо. Про асинк дата я уже думал, что она тоже устарела))) Но честно говоря, не понимаю тогда отличий fetch от AsyncData кроме контекста

Damir
screenshot https://nuxtjs.org/blog/understanding-how-fetch-wo...

Да, то что там this доступен компонента это я понял. Просто например метод loadVillages внутри fetch не работает, говорит, что метода не существует

🗡 𝓓𝒶𝓈𝓉𝒶𝓃𝒶𝓇𝓸𝓃
Насчет корректно, тут идиологически как то не прав...

Старый fetch слабо отличался от middleware скорее (если речь об использовании в конпонентах), про новый такого совсем не скажешь asyncData отличается тем, что может вернуть объект, который будет смержен с содержимым data()

🗡 𝓓𝒶𝓈𝓉𝒶𝓃𝒶𝓇𝓸𝓃
Да, то что там this доступен компонента это я поня...

Внутри fetch с контекстом он офкорз не будет работать

🗡 𝓓𝒶𝓈𝓉𝒶𝓃𝒶𝓇𝓸𝓃
Да, то что там this доступен компонента это я поня...

Странно что к переменным дает доступ, но, скорее, это ошибка подсветки синтаксиса

Damir
Внутри fetch с контекстом он офкорз не будет работ...

Я без контекста пробовал, не работал метод. А то я в нем бы обыграл эту пробелму с адресом и уже не стал бы дублить. AsyncData да мержит, но оно доступно еще только в page а не в компонентах. МОжно конечно через пропсы решить эту проблему. Но мне как то fetch понравился больше. Спасибо что ткнули носом в депрекейтед контекст, я что-то как то проглядел

Damir
Странно что к переменным дает доступ, но, скорее, ...

Дает и работает. К тому что в data хоть с контекстом, хоть без дает. А вот к methods не дает.

🗡 𝓓𝒶𝓈𝓉𝒶𝓃𝒶𝓇𝓸𝓃
Я без контекста пробовал, не работал метод. А то я...

Пожалуйста) У нукста так себе документация, есчестно Неудивительно что проглядел

Damir
Пожалуйста) У нукста так себе документация, есчест...

Сейчас уже многим лучше. Я 4 года назад делал проект на наксте. Тогда помоему даже fetch не было. Была только asyncData. Вот решили взять на новом проекте для генерации статики. Но я смотрю и SSR режим нормально работает сейчас. В той старой 4х летней давности были с SSR проблемы. То тупило, то в бесконечную загрузку падало. Хотя в бесконечную, у меня в dev режиме и сейчас падает переодически, не могу понять почему

🗡 𝓓𝒶𝓈𝓉𝒶𝓃𝒶𝓇𝓸𝓃
Сейчас уже многим лучше. Я 4 года назад делал прое...

Nuxt в dev режиме течет, там есть какие-то хаки для более продолжительной жизни 😊

Damir
Пожалуйста) У нукста так себе документация, есчест...

В общем работает. А есть какой то способ вот этот самый baseUrl из конфига накста достать? Или хотябы dotenv прикрутить.

🗡 𝓓𝒶𝓈𝓉𝒶𝓃𝒶𝓇𝓸𝓃
screenshot

https://nuxtjs.org/docs/2.x/directory-structure/nuxt-config#env Такая запись для fetch, кстати, в 2.12+ не имеет особого смысла, если ты создал функцию в methods исключительно из желания иметь возможность обновить данные вручную уже после рендера страницы : fetch можно будет в дальнейшем вызвать как обычную функцию по this.$fetch()

Damir
https://nuxtjs.org/docs/2.x/directory-structure/nu...

вызов this.$fetch не читаемый. Не понятно, что там фетчится. А вызов this.loadVillages уже сразу говорит о том, что там загружается

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
How to create an OS in C? what to study?
Linus
18
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
а как бы вылезти из ИО, что то типа IO -> Ether или в какую сторону смотреть ? что то туплю
Fedor
9
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
Карта сайта