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;
    }
}

先谢谢各位了~~~~

阅读 2.9k
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题