JS: Веб-разработка
Теория: Cookies
Куки (cookies) — это механизм протокола HTTP, который браузер использует для хранения данных браузером. Они позволяют отслеживать или идентифицировать возвращающихся посетителей. Например, с их помощью интернет-магазины запоминают, что добавлено в корзину. В этом уроке мы изучим эту тему подробнее и выясним, как происходит работа с куками в JavaScript.
Для работы с куками в Fastify есть пакет cookie-parser, который подключается как мидлвара.
Вся работа с куками в Fastify состоит из нескольких методов. Рассмотрим два основных:
req.cookies— объект, который содержит все куки. Данные доступны, если кука была отправлена из браузера вместе с запросом.res.cookie('name', 'value')- устанавливает куку с нужным именем и значением. Если кука существовала, она будет перезаписана. Это стандартное поведение HTTP.
Для примера представим, что мы показываем пользователю какое-то сообщение до тех пор, пока он его не закроет. Такой подход часто используется во время знакомства с интерфейсом проекта, когда сначала показывается справка, но ее можно убрать.
Закрытие в таких случаях реализуется через JavaScript-код. Чтобы не усложнять, мы сделаем скрытие блока автоматически после обновления страницы. Другими словами, блок будет показывать только при первом заходе на сайт.
Куки работают только с текстовыми данными, поэтому их нужно привести к строке во время отправки и выполнить обратное преобразовании при чтении. Для примитивных данных достаточно использовать метод valueOf. С составными данными проще всего выполнять преобразование в JSON и обратно.
В примере выше мы сначала читаем и только затем устанавливаем. При первом заходе на сайт чтение неустановленной куки вернет undefined. Это показывает, что пользователь зашел на сайт первый раз. Во второй раз результатом будет true, потому что установка куки произошла на первую загрузку. Осталось использовать эту информацию в шаблоне:
Рекомендуемые программы
Завершено
0 / 23


