express教学(6) 使用session

session是一种记录客户状态的机制,和Cookie不同的时 Cookie保存在客户端浏览器中,而session保存在服务器上。

客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,这就是session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。

如果说Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么session机制就是通过检查服务器上的“客户明细表”来确认客户身份。

session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。

实用方法:

1.安装express-session

npm  install  express-session  --save-dev    //注意-g无效

2.app.js中

var session = require('express-session');

app.use(cookieParser());     //---必须在此行下面添加

------------------------------------------------------------

app.use(session({secret: 'recommand 128 bytes random string',

//---建议使用128个字符的随机字符串

cookie: { maxAge: 20 * 60 * 1000 },

//---cookie生存周期20*60秒

resave: true,

//---cookie之间的请求规则,假设每次登陆,就算会话存在也重新保存一次

saveUninitialized: true

//---强制保存未初始化的会话到存储器

}));

3.路由实用session

if(rs){

varloginbean = {};

loginbean.id=rs._id;

loginbean.nicheng = rs.nicheng;

loginbean.role = rs.role;

req.session.loginbean = loginbean;

res.redirect('/');    //---跳转回index页

}

4.ejs中识别session

router.get('/', function(req, res, next) {

res.locals.loginbean = req.session.loginbean;

res.render('index', {});

});

5.注销session

router.get('/logout', function(req, res, next) {

delete req.session.loginbean;

res.redirect('/');

});

你可能感兴趣的:(express教学(6) 使用session)