express-session的一些方法:
1. Session.destroy():刪除session殴瘦,當(dāng)檢測(cè)到客戶端關(guān)閉時(shí)調(diào)用佃迄。
2. Session.reload():當(dāng)session有修改時(shí)哈街,刷新session夺饲。
3. Session.regenerate():將已有session初始化装盯。
4. Session.save():保存session废睦。
內(nèi)存存儲(chǔ)方式實(shí)例代碼:
一旦我們將express-session中間件用use掛載后伺绽,我們可以很方便的通過req參數(shù)來存儲(chǔ)和訪問session對(duì)象的數(shù)據(jù)。req.session是一個(gè)JSON格式的JavaScript對(duì)象嗜湃,我們可以在使用的過程中隨意的增加成員奈应,這些成員會(huì)自動(dòng)的被保存到option參數(shù)指定的地方,默認(rèn)即為內(nèi)存中去购披。
var express = require('express');
var session = require('express-session');
var app = express();
//Usethesessionmiddleware
app.use(session({
////這里的name值得是cookie的name杖挣,默認(rèn)cookie的name是:connect.sid
//name:'hhw',
secret:'keyboard cat',
cookie: ('name','value', {path:'/', httpOnly: true,secure: false, maxAge:60000}),
//重新保存:強(qiáng)制會(huì)話保存即使是未修改的。默認(rèn)為true但是得寫上
resave: true,
//強(qiáng)制“未初始化”的會(huì)話保存到存儲(chǔ)刚陡。
saveUninitialized: true,
}))
//只需要用express app的use方法將session掛載在‘/’路徑即可妆毕,這樣所有的路由都可以訪問到session翠储。
//可以給要掛載的session傳遞不同的option參數(shù)面哼,來控制session的不同特性
app.get('/',function(req, res,next) {
varsess = req.session//用這個(gè)屬性獲取session中保存的數(shù)據(jù),而且返回的JSON數(shù)據(jù)
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);