ExpressJS - Cookie

Cookie là các tệp / dữ liệu nhỏ, đơn giản được gửi đến máy khách với yêu cầu của máy chủ và được lưu trữ ở phía máy khách. Mỗi khi người dùng tải lại trang web, cookie này sẽ được gửi kèm theo yêu cầu. Điều này giúp chúng tôi theo dõi các hành động của người dùng.

Sau đây là nhiều cách sử dụng HTTP Cookies:

  • Quản lý phiên
  • Cá nhân hóa (Hệ thống khuyến nghị)
  • Theo dõi người dùng

Để sử dụng cookie với Express, chúng tôi cần phần mềm trung gian phân tích cú pháp cookie. Để cài đặt nó, hãy sử dụng mã sau:

npm install --save cookie-parser

Bây giờ để sử dụng cookie với Express, chúng tôi sẽ yêu cầu cookie-parser. cookie-parser là một phần mềm trung gian phân tích cú pháp các cookie được gắn vào đối tượng yêu cầu của khách hàng . Để sử dụng nó, chúng tôi sẽ yêu cầu nó trongindex.jstập tin; điều này có thể được sử dụng giống như cách chúng tôi sử dụng phần mềm trung gian khác. Ở đây, chúng tôi sẽ sử dụng đoạn mã sau.

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

cookie-parser phân tích cú pháp tiêu đề cookie và điền vào req.cookiesvới một đối tượng được khóa bởi tên cookie. Để đặt một cookie mới, hãy để chúng tôi xác định một lộ trình mới trong ứng dụng Express của bạn như -

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);

Để kiểm tra xem cookie của bạn đã được đặt hay chưa, chỉ cần truy cập trình duyệt của bạn, kích hoạt bảng điều khiển và nhập -

console.log(document.cookie);

Bạn sẽ nhận được kết quả như (bạn có thể đặt nhiều cookie hơn có thể do các tiện ích mở rộng trong trình duyệt của bạn) -

"name = express"

Trình duyệt cũng gửi lại cookie mỗi khi nó truy vấn máy chủ. Để xem cookie từ máy chủ của bạn, trên bảng điều khiển máy chủ trong một tuyến, hãy thêm mã sau vào tuyến đó.

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

Lần tới khi bạn gửi yêu cầu tới tuyến đường này, bạn sẽ nhận được kết quả sau.

Cookies: { name: 'express' }

Thêm cookie với thời gian hết hạn

Bạn có thể thêm các cookie hết hạn. Để thêm cookie hết hạn, chỉ cần chuyển một đối tượng có thuộc tính 'expire' được đặt vào thời điểm bạn muốn nó hết hạn. Ví dụ,

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

Một cách khác để đặt thời gian hết hạn đang sử dụng 'maxAge'bất động sản. Sử dụng thuộc tính này, chúng tôi có thể cung cấp thời gian tương đối thay vì thời gian tuyệt đối. Sau đây là một ví dụ của phương pháp này.

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

Xóa cookie hiện có

Để xóa cookie, hãy sử dụng chức năng clearCookie. Ví dụ: nếu bạn cần xóa một cookie có tênfoo, sử dụng đoạn mã sau.

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);

Trong chương tiếp theo, chúng ta sẽ xem cách sử dụng cookie để quản lý các phiên.