本文主要介绍node.js中间件express-session使用的相关资料。下面小伙伴们一起来看看吧。本文介绍的关于node.js中间件express-session的相关内容分享给大家参考学习。下面来看看详细的介绍:1、为什么要用session?session运行在服务器端,当客户端第一次访问服务器时,可以保存客户端的登录信息。当客户访问其他页面时,可以判断客户的登录状态并进行提示,相当于登录拦截。Session可以结合Redis或者数据库进行持久化操作,服务器挂掉时部分客户信息(购物车)不会丢失。2.Session工作流程:当浏览器访问服务器并发送第一个请求时,服务器会创建一个session对象,生成一个类似于key,value的键值对,然后将key(cookie)返回给浏览器上(client)端,浏览器下次访问时,会携带key(cookie),找到对应的session(value)。客户信息存储在会话中。3、express-session的常用参数:secret:String类型的字符串,作为服务器生成的session的签名。name:返回客户端key的名称,默认为connect.sid,也可以自己设置。resave:(是否允许)当客户端并行发送多个请求时,其中一个请求修改并覆盖另一个请求末尾的session并保存。默认为真。但是(后续版本)可能会默认失败,所以最好手动添加。saveUninitialized:初??始化会话时是否保存到存储。默认为true,但是(后续版本)可能会默认失败,所以最好手动添加。cookie:设置返回给前端key的属性,默认值为{path:'/',httpOnly:true,secure:false,maxAge:null}。express-session的一些方法:Session.destroy():删除session,检测到客户端关闭时调用。Session.reload():当会话被修改时刷新会话。Session.regenerate():初始化现有会话。Session.save():保存会话。4.在示例demo//app.js中添加如下代码(已有的不用添加)varexpress=require('express');varcookieParser=require('cookie-parser');varsession=require('快速会话');app.use(cookieParser('sessiontest'));app.use(session({secret:'sessiontest',//与cookieParser一致resave:true,saveUninitialized:true}));//修改router/index.js,我们在第一次请求时保存了一条用户信息。router.get('/',function(req,res,next){varuser={name:"Chen-xy",age:"22",address:"bj"}req.session.user=user;res.render('index',{title:'nodejssession测试',name:'sessiontest'});});//修改router/users.js判断用户是否登录router.get('/',function(req,res,next){if(req.session.user){varuser=req.session.user;varname=user.name;res.send('你好'+name+',欢迎到我家。');}else{res.send('你还没有登录,请登录后再试!');}});总结一下,以上就是本文希望本文的内容能给大家的学习或者工作带来一些帮助。有什么问题可以留言交流。感谢您对场景3的支持。
