express.session获取不到的问题
是这样的,我想做一个登陆页面。首先A.html是登陆页面,登录是一个post请求, 登陆成功之后 服务器写入req.session.LoginName=‘用户登录名’ 前端跳转到B页面,B页面首先会发起一个get请求,然后服务器检查req.session.LoginName有没有 有的话返回req.session.LoginName,但是实际输出的是req.session始终是undefined.
核心代码:
【app.js】
var express = require("express");
var app = express();
var router = require("./router/router.js");
var session = require('express-session');
app.use(session({
secret: 'keyboard cat',
//name: 'connect.sid', //这里的name值得是cookie的name,默认cookie的name是:connect.sid
cookie: {maxAge: 80000 }, //设置maxAge是80000ms,即80s后session和相应的cookie失效过期
resave: false,
saveUninitialized: true
}));
//路由表
app.post("/doLogin",router.doLogin);
app.get("/checkloginBysession",router.checkloginBysession);
【router.js】
exports.doLogin = function (req, res, next){
//...省略一大堆登录验证代码 以下到登录成功 逻辑
req.session.LoginName=username.toString();
console.log("登录成功"+req.session.LoginName);//可以输出
res.end('{"state":"1","msg":"登录成功"}');
}
exports.checkloginBysession =function(req, res, next) {
//req.session.LoginName=username.toString();
res.writeHead(200,{"Content-type":"application/json;charset=UTF8","Access-Control-Allow-Origin":"*"});
console.log("这个人是"+req.session.LoginName);//undefined
if (req.session.LoginName) {
res.end('{"state":"1","msg":"session登录成功"}');
return;
}
else
{
res.end('{"state":"0","msg":"未登录"}');
return;
}
}
先谢谢各位了~~~~
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我也遇到同样的问题 我用的express5.0.0框架 4的我跟我这样子写没问题