express中session模块

一、安装

npm install cookie-session -save-dev

模块引入及配置

var cookieSession = require("cookie-session");

//cookie及session组件注册
app.use(cookieParser());
app.use(cookieSession({
     name: 'sessionDemo',
     secret: '1234567890ABCEDFJHIJKLQWERTYZ',//jsessionId
     resave: true,
     saveUninitialized:true,
     cookie: {maxAge: 1000*60*60*24*30}
}));

express-session的常用参数:

  • secret:一个String类型的字符串,作为服务器端生成session的签名;
  • name:返回客户端的key的名称,默认为content.sid,也可以自己设置;
  • resave:
    1、(是否允许)当客户端并行发送多个请求时,其中一个请求在另一个请求结束时对session进行修改覆盖并保存。默认为true。但是(后续版本)有可能默认失效,所以最好手动添加。
    2、强制session保存到session store中。即使在请求中这个session没有被修改。但是这个并不一定是必须的,如果客户端有两个并行的请求到你的客户端,一个请求对session的修改可能被另外一个请求覆盖掉,即使第二个请求并没有修改sesion。默认是true,但是默认值已经过时,因此以后default可能会被修改。因此好好研究你的需求选择一个最适用的。大多数情况下你可能需要false 最好的知道你的store是否需要设置resave的方法是通过查看你的store是否实现了touch方法(删除那些空闲的session。同时这个方法也会通知session store指定的session是活动态的),如果实现了那么你可以用resave:false,如果没有实现touch方法,同时你的store对保存的session设置了一个过期的时间,那么建议你用resave:true;
  • saveUninitialized:
    1、初始化session时是否保存到存储。默认为true, 但是(后续版本)有可能默认失效,所以最好手动添加。
    2、强制没有“初始化”的session保存到storage中,没有初始化的session指的是:刚被创建没有被修改,如果是要实现登陆的session那么最好设置为false(reducing server storage usage, or complying with laws that require permission before setting a cookie) 而且设置为false还有一个好处,当客户端没有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;
mini-session是用于node.js的极简版session模块,非持久化。它的数据存储在内存里,因此,如果Web服务器进程重新启动,session将会丢失。所以,这个模块主要针对小网站,并没有太多的数据存储在session。安装在使用 mini-session 之前, 你需要先安装 Cookies 。npm install cookies然后npm install mini-sessionDemovar http = require("http"); var Cookies = require("Cookies"); var Session = require("mini-session"); http.createServer(function(req, res){     var cookies = new Cookies(req, res);     var session = new Session(cookies);//init session with cookies     console.log("sessionId = "   session.sessionId);     session.set("userId", 123);     session.set("userName", "Jhon");     console.log("after set, session data is :");     session.dump();     console.log("session.get(\"userId\") = "   session.get("userId"));     session.abandon();     console.log("after abandon, session data is :");     session.dump();     res.writeHead(200, {"Content-Type":"text/html"});     res.end("<h1>session test done!</h1>"); }).listen(8500); console.log("Server started : http://localhost:8500");控制台输出:Server started : http://localhost:8500 sessionId = f4e4f42b130bfb4fb663ee67122c02b8 after set, session data is : { count: 1,   f4e4f42b130bfb4fb663ee67122c02b8: { count: 2, userId: 123, userName: 'Jhon' } } session.get("userId") = 123 after abandon, session data is : { count: 0 } 标签:minisession
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值