“ EPERM:不允许操作,重命名”,当将快速会话与会话文件存储一起使用时

问题描述 投票:0回答:1

我正在使用expressexpress-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和用于会话管理的会话文件存储。自从我将其包含在项目中以来,我的调试控制台就被填充了...

node.js express session express-session
1个回答
0
投票

我也有同样的问题,我也浏览了SO和相关站点。在阅读并阅读文档后,我解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.