NestJS集成cache-manager报错TypeError: store.get is not a function
解决NestJS缓存实现中
TypeError: store.get is not a function错误 这个错误的核心原因是当前使用的cache-manager版本(v5及以上)不再默认内置内存存储驱动,而NestJS的CacheModule.register()默认依赖的内存存储已经被拆分到独立包中,导致缓存管理器无法初始化有效的存储实例。
解决方案步骤:
- 安装内存存储驱动包
npm install cache-manager-memory-store # 或使用yarn yarn add cache-manager-memory-store
- 修改
AppModule中CacheModule的注册配置,指定使用内存存储
import { CacheModule, Module } from '@nestjs/common'; import { memoryStore } from 'cache-manager-memory-store'; import { AppController } from './app.controller'; import { AppService } from './app.service'; @Module({ imports: [ CacheModule.register({ store: memoryStore, // 可选:设置全局默认缓存过期时间(单位:秒) ttl: 60, }), ], controllers: [AppController], providers: [AppService], }) export class AppModule {}
额外排查方向:
如果安装驱动后问题仍存在,可尝试:
- 删除
node_modules、package-lock.json(或yarn.lock)文件,重新执行npm install/yarn install,确保依赖安装完整 - 检查
package.json中cache-manager的版本,若为v4及以下版本,可直接删除上述store配置,默认内存存储会生效
内容的提问来源于stack exchange,提问作者tekuila
相关产品推荐
相关产品推荐

