node.js 中间件express-session使用详解
发布时间 - 2026-01-11 01:12:37 点击率:次本文介绍的关于node.js中间件express-session的相关内容,分享出来供大家从参考学习,下面来一起看看详细的介绍:

一、为什么使用session?
session运行在服务器端,当客户端第一次访问服务器时,可以将客户的登录信息保存。
当客户访问其他页面时,可以判断客户的登录状态,做出提示,相当于登录拦截。
session可以和Redis或者数据库等结合做持久化操作,当服务器挂掉时也不会导致某些客户信息(购物车)丢失。
二、session的工作流程:
当浏览器访问服务器并发送第一次请求时,服务器端会创建一个session对象,生成一个类似于key,value的键值对, 然后将key(cookie)返回到浏览器(客户)端,浏览器下次再访问时,携带key(cookie),找到对应的session(value) 。 客户的信息都保存在session中。
三、express-session的常用参数:
secret:一个String类型的字符串,作为服务器端生成session的签名。
name:返回客户端的key的名称,默认为connect.sid,也可以自己设置。
resave:(是否允许)当客户端并行发送多个请求时,其中一个请求在另一个请求结束时对session进行修改覆盖并保存。
默认为true。但是(后续版本)有可能默认失效,所以最好手动添加。
saveUninitialized:初始化session时是否保存到存储。默认为true, 但是(后续版本)有可能默认失效,所以最好手动添加。
cookie:设置返回到前端key的属性,默认值为{ path: ‘/', httpOnly: true, secure: false, maxAge: null } 。
express-session的一些方法:
Session.destroy() :删除session,当检测到客户端关闭时调用。
Session.reload() :当session有修改时,刷新session。
Session.regenerate() :将已有session初始化。
Session.save() :保存session。
四、示例demo
//app.js中添加如下代码(已有的不用添加)
var express = require('express');
var cookieParser = require('cookie-parser');
var session = require('express-session');
app.use(cookieParser('sessiontest'));
app.use(session({
secret: 'sessiontest',//与cookieParser中的一致
resave: true,
saveUninitialized:true
}));
//修改router/index.js,第一次请求时我们保存一条用户信息。
router.get('/', function(req, res, next) {
var user={
name:"Chen-xy",
age:"22",
address:"bj"
}
req.session.user=user;
res.render('index', {
title: 'the test for nodejs session' ,
name:'sessiontest'
});
});
//修改router/users.js,判断用户是否登陆。
router.get('/', function(req, res, next) {
if(req.session.user){
var user=req.session.user;
var name=user.name;
res.send('你好'+name+',欢迎来到我的家园。');
}else{
res.send('你还没有登录,先登录下再试试!');
}
});
总结
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# node
# express
# session
# nodejs
# express中间件
# 中间件
# Node.js使用Middleware中间件教程详解
# node.js express和koa中间件机制和错误处理机制
# node.js使用express-fileupload中间件实现文件上传
# 浅谈node.js中间件有哪些类型
# 浅谈Node.js 中间件模式
# node.js中路由
# get请求和post请求的参数详解
# node.js中express中间件body-parser的介绍与用法详解
# node.js cookie-parser 中间件介绍
# Node.js的中间件及使用方法详解
# 客户端
# 有可能
# 默认为
# 好了
# 相关内容
# 多个
# 已有
# 你还
# 购物车
# 这篇文章
# 其中一个
# 谢谢大家
# 欢迎来到
# 类似于
# 创建一个
# 结束时
# 值为
# 下次再
# 再试
# 键值
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在IIS服务器上快速部署高效网站?
潮流网站制作头像软件下载,适合母子的网名有哪些?
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
如何在万网ECS上快速搭建专属网站?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
奇安信“盘古石”团队突破 iOS 26.1 提权
node.js报错:Cannot find module 'ejs'的解决办法
如何为不同团队 ID 动态生成多个“认领值班”按钮
jQuery中的100个技巧汇总
Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置
Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】
高防服务器租用指南:配置选择与快速部署攻略
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
Laravel如何实现API版本控制_Laravel版本化API设计方案
如何快速查询网址的建站时间与历史轨迹?
Laravel Octane如何提升性能_使用Laravel Octane加速你的应用
PHP正则匹配日期和时间(时间戳转换)的实例代码
使用C语言编写圣诞表白程序
Laravel如何创建自定义Facades?(详细步骤)
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程
如何用IIS7快速搭建并优化网站站点?
C++时间戳转换成日期时间的步骤和示例代码
北京专业网站制作设计师招聘,北京白云观官方网站?
如何在IIS中新建站点并配置端口与物理路径?
Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】
如何实现建站之星域名转发设置?
如何在阿里云域名上完成建站全流程?
Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作
Laravel如何使用Passport实现OAuth2?(完整配置步骤)
如何在VPS电脑上快速搭建网站?
Bootstrap整体框架之JavaScript插件架构
如何使用 jQuery 正确渲染 Instagram 风格的标签列表
java ZXing生成二维码及条码实例分享
网站建设整体流程解析,建站其实很容易!
Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用
Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置
Laravel如何自定义错误页面(404, 500)?(代码示例)
html文件怎么打开证书错误_https协议的html打开提示不安全【指南】
浅析上传头像示例及其注意事项
如何用JavaScript实现文本编辑器_光标和选区怎么处理
如何用低价快速搭建高质量网站?
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏
Laravel定时任务怎么设置_Laravel Crontab调度器配置
长沙企业网站制作哪家好,长沙水业集团官方网站?
Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比
如何制作一个表白网站视频,关于勇敢表白的小标题?
上一篇:2_准备开发环境
上一篇:2_准备开发环境

