РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗jsnuSpCkAC 38 of 90 menu
◀ ▶

Кука в API в Nuxt

На Vue-странице куку удобно держать в функциюе useCookie: ref связан и с HTML, и с заголовками ответа. В файле server/api нет setup и шаблона, зато есть объект входящего запроса. Там куки читают функцией getCookie: первым аргументом передают event обработчика, вторым - имя куки из заголовка запроса браузера.

useCookie пишет и читает куку со стороны приложения Vue. getCookie только смотрит, что клиент уже прислал на сервер. Страница может установить куку, а API на том же хосте увидит то же имя в следующем запросе useFetch или $fetch.

Сначала зададим GET-обработчик, который возвращает тему из куки:

export default defineEventHandler((event) => { const theme = getCookie(event, 'theme'); return { theme }; });

На странице /theme зададим куку, вызовем useFetch с путём /api/theme и выведем поле theme из JSON, чтобы убедиться, что обработчик прочитал то же значение:

<script setup> const theme = useCookie('theme'); theme.value = 'dark'; const { data } = await useFetch('/api/theme'); </script> <template> <p> From API: {{ data.theme }} </p> </template>

Сделайте API, которое возвращает куку department в объекте с полем department, и страницу, которая задаёт эту куку и выводит значение из ответа API.

Измените значение куки на странице, обновите вкладку и убедитесь, что текст из API совпадает с тем, что хранится в куке department.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить