我正在使用express
和express-session
创建用于在session-file-store
Web服务器上运行的节点应用程序以进行会话管理。
自从我将其包含在项目中以来,我的调试控制台就充满了诸如以下错误:
Error: EPERM: operation not permitted, rename 'd:\nodejs\project\sessions\924bcb22-dd42-47d1-a790-91ea14fe4cf1.json.3130939431' -> 'd:\nodejs\project\sessions\924bcb22-dd42-47d1-a790-91ea14fe4cf1.json'
尽管有任何错误,但一切似乎都处于正常工作状态(会话按预期方式在窗口/浏览器关闭后仍会继续存在,等等。但是,这些错误使得很难正确调试服务器的输出,因为它们不断重复。) >
我一直在寻找解决方案,尝试降级模块,通过Administration PowerShell以Admininistrator和独立应用程序的身份运行VS Code,检查文件夹上的文件权限,以便所有人都可以读取/写入,但错误始终显示。另外,我在互联网上看到的许多类似错误都显示相同的错误,但对session-file-store
没有任何意义,有些甚至根本不使用express
。
在有用的情况下,以下是app.js的摘要,可能有助于解决此问题:
//... const express = require('express'); const session = require('express-session'); const FileStore = require('session-file-store')(session); const http = require('http'); const path = require('path'); const socketio = require('socket.io'); const bodyParser = require('body-parser'); const app = express(); const server = http.createServer(app); global.io = socketio(server); const port = process.env.PORT || 453; //... app.use(session({ genid: (req) => { return global.uuid() }, store: new FileStore(), secret: 'NotReallyMySecretKey', resave: false, saveUninitialized: true }))
[请注意,我在这里也查看了很多答案,即使它们的名称相似,我也没有发现它们之间的相似之处,因此请在将问题标记为重复之前先进行检查。
谢谢您对此事的协助!
我正在创建一个在Express Web服务器上运行的节点应用程序,该应用程序具有Express-Session和用于会话管理的会话文件存储。自从我将其包含在项目中以来,我的调试控制台就被填充了...
我也有同样的问题,我也浏览了SO和相关站点。在阅读并阅读文档后,我解决了这个问题。