NodeJS require(“connect-redis”)(session); require(...)不是函数

wsewodh2  于 12个月前  发布在  Node.js
关注(0)|答案(1)|浏览(172)

我在做一个实时聊天应用我正在使用express-session添加cookie,这样用户就不必在每次页面刷新时登录。

const session = require("express-session");
const Redis = require("ioredis");
const RedisStore = require("connect-redis")(session);

这是我的进口。我有更多,但我认为这些都与问题有关,所以我只分享这些。我在我的项目中有所有这些下载器,以防有人说要仔细检查我是否正确安装了它们,这就是为什么我添加了这个。我就是这样执行代码的...

const redisClient = new Redis();
app.use(session({
    secret:process.env.COOKIE_SECRET,
    credentials:true,
    name:"$id",
    store: new RedisStore({client:redisClient}), //This is the user's session information
    resave:false,
    saveUninitialized:false,
    cookie: {
        secure:process.env.ENVIRONMENT === "production" ? "true" : "auto",
        httpOnly:true,
        expires: 1000 * 60 * 60 * 24 * 7,
        sameSite:process.env.ENVIRONMENT === "production" ? "none" : "lax",
    }
}))

但是我保留了这个错误消息,require(...)不是一个函数。我试着解决它,但我不能。
我试图安装redis而不是ioredis,看看这是否解决,但它没有。

iovurdzv

iovurdzv1#

connect-redis的npm页面上说,当你需要RedisStore时,使用.default而不是(session):

const RedisStore = require("connect-redis").default

在我使用默认值后,一切都正常旋转

相关问题