express-session是Node和express里面处理session的中间件,一说到session,就要提到cookie,这两者的不同可见我的以前博客:http://www.cnblogs.com/zhangmingzhao/p/7613141.html
express-session中间件将会话数据存储在服务器上;它仅将会话标识(而非会话数据)保存在 cookie 中。从1.5.0版本开始, express-session不再依赖cookie-parser
,直接通过req/res
读取/写入;默认存储位置内存存储
(服务器端)。
options参数
1. Session.destroy():删除session,当检测到客户端关闭时调用。
2. Session.reload():当session有修改时,刷新session。
3. Session.regenerate():将已有session初始化。
4. Session.save():保存session。
一旦我们将express-session中间件用use挂载后,我们可以很方便的通过req参数来存储和访问session对象的数据。req.session是一个JSON格式的JavaScript对象,我们可以在使用的过程中随意的增加成员,这些成员会自动的被保存到option参数指定的地方,默认即为内存中去。
一个小测试:
var express = require("express"); var session = require('express-session'); var app = express() // app.set('trust proxy', 1) // trust first proxy app.use(session({ secret: 'keyboard cat', resave: false, saveUninitialized: true, cookie: { secure: false } })); app.get("/",function (req,res) { if(req.session.login) { res.send("欢迎你" + req.session.username); }else { res.send("你没有登陆"); } }); app.get("/login",function (req,res) { req.session.login = true; //设置这个session req.session.username = "Jack"; res.send("你已经成功登陆"); }); app.listen(3000);