Javascript 使用express会话处理登录信息问题

Javascript 使用express会话处理登录信息问题,javascript,node.js,express,socket.io,express-session,Javascript,Node.js,Express,Socket.io,Express Session,我要做的是:因此,我使用会话临时存储登录信息。当一个人登录时,他的登录数据被写入 req.session对象的“loginInfo”属性。当同一个用户重新加载页面时,我希望表单预先填充来自req.session的数据,只要他的会话没有过期 //function to check if the user has a loginInfo object in his session function isLogged(req){ if(req.session){ if(req.sessi

我要做的是:因此,我使用会话临时存储登录信息。当一个人登录时,他的登录数据被写入 req.session对象的“loginInfo”属性。当同一个用户重新加载页面时,我希望表单预先填充来自req.session的数据,只要他的会话没有过期


//function to check if the user has a loginInfo object in his session
function isLogged(req){
  if(req.session){
    if(req.session.loginInfo){
      return true;
    }
  }
  return false;
}

//setting up the routes
app.get('/' , (req, res) => {
  console.log(req.session.loginInfo);  //for debugging
  if(isLogged(req)) io.on('connect', socket => {
    socket.emit('isLogged', req.session.loginInfo); //and my loginInfo schema = {loginName : String, loginEmail : String}
  });
  res.render('index');
});

我正在向我的客户端套接字发送一个事件“IsLoged”,以发送登录信息。在客户端,我有以下代码来处理传入的数据

socket.on('isLogged', loginInfo => {
     loginName.value = loginInfo.loginName;  //populating the input fields of the form 
     loginEmail.value = loginInfo.loginEmail;
   });
问题:当我从数据库中删除会话时(我使用的是express sessions),无论是显式删除还是等待会话过期(我将其设置为2分钟),然后重新加载页面。其他一切正常,响应头中也设置了cookie,我在上面的代码中登录到控制台的'req.session.loginInfo'对象抛出未定义的cookie

但是表单仍然会填充登录信息。就像它是从哪里得到的一样,我已经从数据库中删除了血腥的会话。我最好的猜测是,我使用socket.io发送登录信息的方式有问题。有什么我不知道的吗。请帮忙