Учебники

ExpressJS — Cookies

Файлы cookie — это простые небольшие файлы / данные, которые отправляются клиенту по запросу сервера и хранятся на стороне клиента. Каждый раз, когда пользователь загружает сайт обратно, этот файл cookie отправляется вместе с запросом. Это помогает нам отслеживать действия пользователя.

Ниже приведены многочисленные примеры использования файлов cookie HTTP.

  • Управление сессиями
  • Персонализация (системы рекомендаций)
  • Отслеживание пользователей

Чтобы использовать куки с Express, нам нужно промежуточное программное обеспечение парсера файлов cookie. Чтобы установить его, используйте следующий код —

npm install --save cookie-parser

Теперь, чтобы использовать куки с Express, нам потребуется cookie-парсер . cookie-parser — это промежуточное ПО, которое анализирует куки-файлы, прикрепленные к объекту запроса клиента . Чтобы использовать его, нам потребуется это в нашем файле index.js ; это можно использовать так же, как мы используем другое промежуточное программное обеспечение. Здесь мы будем использовать следующий код.

var cookieParser = require('cookie-parser');
app.use(cookieParser());

cookie-анализатор анализирует заголовок Cookie и заполняет req.cookies объектом, обозначенным именами cookie. Чтобы установить новый файл cookie, давайте определим новый маршрут в вашем приложении Express, например:

var express = require('express');
var app = express();

app.get('/', function(req, res){
   res.cookie('name', 'express').send('cookie set'); //Sets name = express
});

app.listen(3000);

Чтобы проверить, установлен ваш cookie или нет, просто зайдите в браузер, запустите консоль и введите —

console.log(document.cookie);

Вы получите вывод, как (у вас может быть больше куки, возможно, из-за расширений в вашем браузере) —

"name = express"

Браузер также отправляет файлы cookie каждый раз, когда запрашивает сервер. Чтобы просмотреть файлы cookie с вашего сервера, на консоли сервера в маршруте добавьте следующий код к этому маршруту.

console.log('Cookies: ', req.cookies);

В следующий раз, когда вы отправите запрос по этому маршруту, вы получите следующий вывод.

Cookies: { name: 'express' }

Добавление файлов cookie со сроком действия

Вы можете добавить куки, срок действия которых истекает. Чтобы добавить cookie, срок действия которого истекает, просто передайте объект со свойством expire, установленным на время, когда вы хотите, чтобы срок его действия истек. Например,

//Expires after 360000 ms from the time it is set.
res.cookie(name, 'value', {expire: 360000 + Date.now()}); 

Другой способ установить время истечения — использовать свойство maxAge . Используя это свойство, мы можем указать относительное время вместо абсолютного. Ниже приведен пример этого метода.

//This cookie also expires after 360000 ms from the time it is set.
res.cookie(name, 'value', {maxAge: 360000});

Удаление существующих файлов cookie

Чтобы удалить cookie, используйте функцию clearCookie. Например, если вам нужно очистить файл cookie с именем foo , используйте следующий код.

var express = require('express');
var app = express();

app.get('/clear_cookie_foo', function(req, res){
   res.clearCookie('foo');
   res.send('cookie foo cleared');
});

app.listen(3000);

В следующей главе мы увидим, как использовать куки для управления сессиями.