NodeJS:带有会话的“ENOENT”警告消息

时间:2015-07-13 15:55:03

标签: node.js session express express-session

我正在使用带有快速会话和会话文件存储包的节点。会话数据使用session-file-store包作为文件存储在根目录中。但是,现在我的日志被阻塞了,因为短消息中访问的每个会话cookie消息[session-file-store] will retry, error on last attempt: Error: ENOENT, open 'sessions/_jl2ijMBQHIvv8M1mYTcnFZGqwGo0t-v.json'出现了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'

3 个答案:

答案 0 :(得分:9)

所以当我第一次尝试使用我的第一个NodeJS / Express示例项目时,我确实遇到了相同的消息。

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

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

new filestore({logFn: function(){}})

答案 1 :(得分:0)

我能够通过chmod +x sessions

解决同样的问题

答案 2 :(得分:0)

在我看来这并不是主要问题,因为会话文件存储 express-session 的一部分,而当 express-session < / strong>找不到会话文件,他只是创建新文件。

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

new filestore({logFn: function(){}})