ExpressJS - Phiên

HTTP không trạng thái; để liên kết một yêu cầu với bất kỳ yêu cầu nào khác, bạn cần một cách để lưu trữ dữ liệu người dùng giữa các yêu cầu HTTP. Cookie và tham số URL đều là những cách phù hợp để vận chuyển dữ liệu giữa máy khách và máy chủ. Nhưng chúng đều có thể đọc được và ở phía khách hàng. Phiên giải quyết chính xác vấn đề này. Bạn gán cho khách hàng một ID và nó thực hiện tất cả các yêu cầu khác bằng cách sử dụng ID đó. Thông tin liên kết với máy khách được lưu trữ trên máy chủ được liên kết với ID này.

Chúng tôi sẽ cần Express-session , vì vậy hãy cài đặt nó bằng đoạn mã sau.

npm install --save express-session

Chúng tôi sẽ đặt sessioncookie-parserphần mềm trung gian tại chỗ. Trong ví dụ này, chúng tôi sẽ sử dụng kho lưu trữ mặc định để lưu trữ các phiên, tức là MemoryStore. Không bao giờ sử dụng điều này trong môi trường sản xuất. Phần mềm trung gian phiên xử lý tất cả mọi thứ cho chúng tôi, tức là tạo phiên, đặt cookie phiên và tạo đối tượng phiên trongreq vật.

Bất cứ khi nào chúng tôi thực hiện lại yêu cầu từ cùng một khách hàng, chúng tôi sẽ lưu trữ thông tin phiên của họ với chúng tôi (với điều kiện là máy chủ không được khởi động lại). Chúng ta có thể thêm nhiều thuộc tính hơn vào đối tượng phiên. Trong ví dụ sau, chúng tôi sẽ tạo bộ đếm lượt xem cho một máy khách.

var express = require('express');
var cookieParser = require('cookie-parser');
var session = require('express-session');

var app = express();

app.use(cookieParser());
app.use(session({secret: "Shh, its a secret!"}));

app.get('/', function(req, res){
   if(req.session.page_views){
      req.session.page_views++;
      res.send("You visited this page " + req.session.page_views + " times");
   } else {
      req.session.page_views = 1;
      res.send("Welcome to this page for the first time!");
   }
});
app.listen(3000);

Đoạn mã trên có chức năng gì, khi người dùng truy cập trang web, nó sẽ tạo một phiên mới cho người dùng và gán cookie cho họ. Lần tới khi người dùng đến, cookie sẽ được kiểm tra vàpage_view biến phiên được cập nhật tương ứng.

Bây giờ nếu bạn chạy ứng dụng và truy cập localhost:3000, kết quả sau sẽ được hiển thị.

Nếu bạn truy cập lại trang, số lượt truy cập trang sẽ tăng lên. Trang trong ảnh chụp màn hình sau đây đã được làm mới 42 lần.