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

NestJS调用MinioClientService.upload报错is not a function怎么解决

排查步骤与解决方案

1. 优先检查构造函数装饰器的绑定位置

你当前AdminsService的构造函数里,@InjectRepository(AdminsRepository)装饰器直接放在了minioClientService参数的前面,该装饰器会绑定修饰紧跟在它后面的第一个构造参数,相当于你把AdminsRepository的实例注入给了minioClientService变量,自然调用upload方法会报错。
修正后的构造函数写法如下:

@Injectable()
export class AdminsService {
  constructor(
    private minioClientService: MinioClientService,
    // 把@InjectRepository装饰器移到对应Repository参数的前面
    @InjectRepository(AdminsRepository)
    private adminsRepository: AdminsRepository,
  ) {}
  // 剩余代码保持不变
}

2. 检查MinioClientModule的导出配置

确认你的minio-client.module.ts中,已经将MinioClientService加入到exports数组中,只有导出的服务才能被其他导入该模块的业务模块使用:

@Module({
  // ... 其他配置(providers、imports等)
  exports: [MinioClientService] // 确保这里有导出对应的服务
})
export class MinioClientModule {}

3. 排查循环依赖问题

如果存在MinioClientModule导入AdminsModule、同时AdminsModule导入MinioClientModule的循环引用情况,需要用forwardRef处理依赖注入:

  • 模块导入时用forwardRef(() => MinioClientModule)
  • 服务注入时用@Inject(forwardRef(() => MinioClientService))修饰对应参数

4. 检查导入路径是否正确

确认AdminsService中导入MinioClientService的路径完全正确,不存在导入其他同名服务、或者相对路径拼写错误的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 20:33:03