9

我将 node 与 express-session 和 session-file-store 包一起使用。会话数据使用 session-file-store 包作为文件存储在根目录中。但是,现在我的日志被阻塞了,因为消息[session-file-store] will retry, error on last attempt: Error: ENOENT, open 'sessions/_jl2ijMBQHIvv8M1mYTcnFZGqwGo0t-v.json'在短时间内访问的每个会话 cookie 出现 5 次。什么可能导致此错误?它发生在我的 Windows 开发机器和我的 ubuntu 服务器上。它显然无法访问该文件,但会话仍然有效。

这是我收到的一系列错误之一:

[session-file-store] will retry, error on last attempt: Error: ENOENT, open 'sessions/tRI6WeZEO2Uyvr4ZaUGW6_CU32RjvFpW.json'
[session-file-store] will retry, error on last attempt: Error: ENOENT, open 'sessions/tRI6WeZEO2Uyvr4ZaUGW6_CU32RjvFpW.json'
[session-file-store] will retry, error on last attempt: Error: ENOENT, open 'sessions/tRI6WeZEO2Uyvr4ZaUGW6_CU32RjvFpW.json'
[session-file-store] will retry, error on last attempt: Error: ENOENT, open 'sessions/tRI6WeZEO2Uyvr4ZaUGW6_CU32RjvFpW.json'
[session-file-store] will retry, error on last attempt: Error: ENOENT, open 'sessions/tRI6WeZEO2Uyvr4ZaUGW6_CU32RjvFpW.json'
4

3 回答 3

13

因此,当我尝试我的第一个 NodeJS/Express 示例项目时,我确实遇到了相同的消息。

我设法确定至少在我的示例项目中,会话被声明为已销毁但 Cookie 从未清除,因此加载的下一页使用旧 cookie 尝试访问过期会话(已删除)导致消息被记录.

这对您来说可能不是同一个问题,但认为值得分享...懒惰的替代方法是将 logFn 选项替换为空函数:

new filestore({logFn: function(){}})
于 2015-07-13T22:27:11.033 回答
1

在我的情况下,这不是主要问题,因为session-file-storeexpress-session的一部分,当express-session找不到会话文件时,他只是创建新文件。

然后您可以按照前面的建议隐藏错误日志

new filestore({logFn: function(){}})
于 2019-01-30T08:22:07.403 回答
0

我能够通过chmod +x sessions

于 2017-02-07T19:18:24.597 回答