【问题标题】:Every reload the session resets NodeJS / A new session will be created每次重新加载会话都会重置 NodeJS / 将创建一个新会话
【发布时间】:2017-05-01 20:13:40
【问题描述】:

现在一整天我都有同样的错误。每次我重新加载页面时,都会创建一个新会话。顺便说一句:我是 NodeJS 初学者,我的英语不是最好的。

var express = require('express');
var session = require('express-session');
var fileStore = require('session-file-store')(session);
var cookieParser = require('cookie-parser');
var app = express();

app.use(cookieParser('testing'));

app.use(session({
  name: 'Session',
  secret: 'testing',
  saveUninitialized: false,
  resave: true,
  cookie: { 
    maxAge: 60000,
    httpOnly: true,
    secure: true
  },
  store: new fileStore({
    path: './tmp/sessions/',
    useAsync: true,
    reapInterval: 5000,
    maxAge: 10000
  })
}));

app.get('/', function(req, res) {
  if(res.session) {
    req.session.t++;
    console.log(req.session.t);
  } else {
    req.session.t = 1;
    req.session.save();
    console.log(req.session.t);
  }
  res.sendFile(__dirname + 'index.html');
});

最好的问候,

海森堡

【问题讨论】:

    标签: node.js session express-session


    【解决方案1】:

    您如何注意到创建了一个新会话?因为 if(res.session) 永远不会执行? 请注意您正在检查 res.session - 我想您的意思是 req.session,这是一个区别。 res.session 将始终未定义,这可能就是您认为会话为空的原因。另外,请注意,在您当前的代码中,如果您尝试,则会引发错误

    req.session.t = 1;
    req.session.save();
    

    因为你试图访问一个未定义的对象 req.session。

    【讨论】:

      猜你喜欢
      • 2013-04-01
      • 2014-04-25
      • 1970-01-01
      • 2019-11-04
      • 1970-01-01
      • 2013-04-24
      • 2018-01-23
      • 2014-01-15
      • 1970-01-01
      相关资源
      最近更新 更多