我在做一个实时聊天应用我正在使用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,看看这是否解决,但它没有。
1条答案
按热度按时间iovurdzv1#
connect-redis
的npm页面上说,当你需要RedisStore
时,使用.default而不是(session):在我使用默认值后,一切都正常旋转