ExpressJS - Sessions

ExpressJS - Sessions 首页 / ExpressJS入门教程 / ExpressJS - Sessions

HTTP是无状态的,为了将一个请求与任何其他请求相关联,您需要一种在HTTP请求之间存储用户数据的方法。 Cookies和URL参数都是在客户端和服务器之间传输数据的合适方法。但是它可以在客户端随意读取到,不安全。Sessions正是解决了这个问题。您为客户端分配一个ID。与客户端关联的信息存储在链接到该ID的服务器上。

无涯教程将需要 Express-session ,因此请使用以下代码进行安装。

npm install --save express-session

将放置 session 和 cookie-parser 中间件。在此示例中,将使用默认内存存储区来存储会话,即MemoryStore,切勿在生产环境中使用此函数。会话(session)中间件为处理所有事情,即创建会话,设置会话cookie并在 req 对象中创建会话(session)对象。

每当再次从同一个客户端发出请求时,都会将他们的会话信息一起存储。在以下示例中,将为客户端创建一个视图计数器。

无涯教程网

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

上面的代码所做的是,当用户访问该站点时,它将为该用户创建一个新会话并为他们分配一个cookie。下次用户访问时,将检查Cookie,并相应地更新 page_view 会话变量。

现在,如果您运行该应用程序并转到 localhost:3000 ,将显示以下输出。

First visit

如果您重新访问页面,页面计数器将增加。以下屏幕截图中的页面刷新了42次。

First visit

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

图解 Google V8 -〔李兵〕

Selenium自动化测试实战 -〔郭宏志〕

容量保障核心技术与实战 -〔吴骏龙〕

说透元宇宙 -〔方军〕

深入拆解消息队列47讲 -〔许文强〕

PPT设计进阶 · 从基础操作到高级创意 -〔李金宝(Bobbie)〕

超级访谈:对话道哥 -〔吴翰清(道哥)〕

手把手带你写一个 MiniTomcat -〔郭屹〕

工程师个人发展指南 -〔李云〕

好记忆不如烂笔头。留下您的足迹吧 :)