通常我们在node的登录注册小案例时,我们经常要用到express-session做会话处理。
express-sessionApi使用方法:https://github.com/expressjs/session
var session = require('express-session'); var app = express(); app.use(session({ secret: 'secret', secure: true, cookie:{ maxAge: 1000*60*30; //如果不设置则为null,关闭会话就失去,1000毫秒*60*30 半个小时周期 } })); //这里是浏览器刷新请求时执行即执行,app.get('/',function(){}) app.use(function(req,res,next){ res.locals.user = req.session.user; // 从session 获取 user对象 var err = req.session.error; //获取错误信息 delete req.session.error; //删除req.session.error 请求的错误session res.locals.message = ""; // 展示的信息 message if(err){ res.locals.message = '<div class="alert alert-danger" style="margin-bottom:20px;color:red;">'+err+'</div>'; } next(); //中间件传递 }); app.post('/login',function(req, res){ var user={ username:'admin', password:'admin' } if(req.body.username===user.username && req.body.password===user.password){ req.session.user=user; return res.redirect('/home'); } else { req.session.error='用户名或密码不正确'; //只是跳转没有请求,导致执行app.get,app.post,则req.session.error那段不会执行,不会被删除 return res.redirect('/login'); } });