express-session的一些方法:
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();
//Usethesessionmiddleware
app.use(session({
////这里的name值得是cookie的name,默认cookie的name是:connect.sid
//name:'hhw',
secret:'keyboard cat',
cookie: ('name','value', {path:'/', httpOnly: true,secure: false, maxAge:60000}),
//重新保存:强制会话保存即使是未修改的。默认为true但是得写上
resave: true,
//强制“未初始化”的会话保存到存储。
saveUninitialized: true,
}))
//只需要用express app的use方法将session挂载在‘/’路径即可,这样所有的路由都可以访问到session。
//可以给要挂载的session传递不同的option参数,来控制session的不同特性
app.get('/',function(req, res,next) {
varsess = req.session//用这个属性获取session中保存的数据,而且返回的JSON数据
if(sess.views) {
sess.views++
res.setHeader('Content-Type','text/html')
res.write('
欢迎第'+ sess.views +'次访问'+'expires in:'+ (sess.cookie.maxAge /1000) +'s
')res.end();
} else {
sess.views = 1
res.end('welcome to the session demo. refresh!')
}
});
app.listen(3000);