node.js - express 跨页面session为空
本文介绍了node.js - express 跨页面session为空的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
导入cookieParser()、session中间件
router.use(cookieParser());
router.use(session({
saveUninitialized: false, // don't create session until something stored
resave: false, // don't save session if unmodified
cookie: { maxAge: 36288000 },
secret: 'RHjk2017'
}));
登录操作
router.post('/login.html', function(req, res, next){
var password = req.body.password;
var username = req.body.username;
password = md5.update(password).digest('hex');
var users = new Users();
users.checklogin(username, password, function(err, result){
if (err) {
res.setHeader('Content-Type', 'text/html;charset=UTf-8');
res.end('登录错误,请重试!');
} else {
req.session.username = result[0].name;
req.session.save();
// console.log(req.session.username); // **这里打印session是有的**
res.redirect('/admin/');
}
});
});
网站首页
router.use(cookieParser());
router.use(session({
resave: false, // don't save session if unmodified
cookie: { maxAge: 60*60*24*7 },
saveUninitialized: false, // don't create session until something stored
secret: 'RHjk2017'
}));
router.use(function(req, res, next){
console.log(req.session.username); // session为空
});
登陆后记录session,跳转后session为空,求解决方案
解决方案
router.use(cookieParser());
router.use(session({
resave: false, // don't save session if unmodified
cookie: { maxAge: 60*60*24*7 },
saveUninitialized: false, // don't create session until something stored
secret: 'RHjk2017'
}));
网站首页就不再需要上面的代码了。
现在等于又重新定义了,导致 req.session.username
为空了。
这篇关于node.js - express 跨页面session为空的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文