You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ben Awad全栈教程中connectRedis传入session类型不匹配如何解决?

报错原因

这个是TypeScript类型声明冲突导致的,@types/connect-redis自带的express-session类型版本,和你项目本地安装的@types/express-session版本不一致,所以参数类型校验不通过,不属于代码逻辑问题,不会影响实际运行效果。

解决方案

你可以根据自己的需求选择任意一种方案解决:

  • 方案1:快速跳过类型校验
    直接对报错的参数增加类型断言即可,修改对应代码为:
    const RedisStore = connectRedis(session as any);
    
    该方案不需要改动任何依赖和其他代码逻辑,适合快速开发调试。
  • 方案2:固定依赖版本匹配教程
    你参考的Ben Awad教程使用的是旧版的connect-redis,直接安装对应版本的依赖即可100%兼容原有写法:
    npm i connect-redis@3.4.2 @types/connect-redis@0.0.43
    
    安装完成后重启TypeScript服务,报错就会完全消失。
  • 方案3:适配新版依赖的API
    如果你使用的是v6及以上版本的connect-redis,官方已经调整了API用法,不需要再向connectRedis传递session参数,调整代码即可:
    1. 修改导入语句:
    // 替换原来的import connectRedis from "connect-redis"
    import RedisStore from "connect-redis"
    
    1. 删掉const RedisStore = connectRedis(session);这一行代码,初始化session的部分直接写:
    store: new RedisStore({ client: redisClient, disableTouch: true }),
    
    1. 如果你同时使用的是v4及以上版本的redis客户端,需要补充手动连接的逻辑:
    const redisClient = redis.createClient();
    redisClient.connect().catch(console.error);
    

内容的提问来源于stack exchange,提问作者sadnapoleon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 21:27:02