【问题标题】:Node.js session-file-store will abort all following requestsNode.js session-file-store 将中止所有以下请求
【发布时间】:2015-05-09 06:58:30
【问题描述】:

我正在 node.js 中创建简单的网络应用程序,它应该能够将会话数据保存到文件存储中。

为此,我将 express-sessionsession-file-store 模块一起使用:

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

app.use(session({
    store: new FileStore({
        path:'./sessions/',
    }),
    secret: 'keyboard cat'
}));

但是当我访问我网站的某个页面时,我会成功收到生成的 HTML 文件,但是所有其他的资产请求都将被中止:

当我评论存储属性时,它可以正常工作..但它不会将会话数据保存到文件中。

有人知道,这里有什么问题吗?或者您知道任何其他将会话数据存储到文件中的模块吗?

感谢您的建议..

【问题讨论】:

  • 一个最小的测试用例在这里没有问题,所以我猜问题出在其他地方。一种解释可能是该文件夹不可写。我建议您还创建一个文件会话正常工作的最小测试用例,然后逐步添加所有其他路由,直到它中断。
  • 感谢您的回答.. 我已经尝试过: - 在会话中间件之前配置静态内容(由于某些磁盘配额限制,别名不会将会话用于静态内容文件) - 然后我指定了完整地址带有 __dirname 的会话文件夹 - 最后一件事:我删除了会话文件夹并重新启动了应用程序。但老实说,我不知道为什么它不起作用。再次感谢。

标签: javascript node.js session express


【解决方案1】:

如果文件系统在内存存储中使用默认设置,您的文件系统似乎存在权限问题。


尝试以这种方式创建会话存储:

new FileStore({
   path:  require('path').join(require('os').tmpdir(), 'sessions')
})

它必须解决这个问题。

【讨论】:

  • 可以让会话永远保持。请告诉我
  • 谢谢!这就是解决方案!
猜你喜欢
  • 1970-01-01
  • 2019-11-05
  • 2019-08-20
  • 2014-10-15
  • 2018-05-28
  • 2017-06-25
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
相关资源
最近更新 更多