Express 4和文件会话存储

时间:2015-07-09 14:14:08

标签: javascript node.js session cookies express

我使用Express 4,我尝试使用session-file-store保存会话值,这是我在app.js中使用的配置:

var FileStore = require('session-file-store')(expressSession);

app.use(
    expressSession({
        name: 'connect.sid',
        store: new FileStore(),
        cookie : { maxAge : 3600000 * 3 },
        resave : true,
        saveUninitialized : false,
        secret : 'njksndf323SDFsffdi32Sfsd34fsbkoqaz231j0'
    })
)

当我在浏览器中打开使用会话的路径时,cookie(connect.sid)已正确设置。

问题在于每当我刷新页面时,会话目录中都会创建一些新的会话文件,但我认为在设置cookie之后,每个请求都应该使用相同的会话文件。

为什么每个请求都会创建新的会话文件?我错过了什么?

更新:

正在创建新的会话文件,因为所有这些调用都是ajax请求。

1 个答案:

答案 0 :(得分:1)

您的AJAX客户端需要支持withCredentials(应设置为true以使AJAX请求通过Cookie和/或授权标头)。

例如在jQuery中:

$.ajax({
  url       : URL,
  xhrFields : {
    withCredentials: true
  }
});

请注意,这将需要CORS支持