【问题标题】:Nestjs this.minioClientService.upload is not a functionNestjs this.minioClientService.upload 不是函数
【发布时间】:2021-09-07 14:56:32
【问题描述】:

这是我的 minio-client.service

@Injectable()
export class MinioClientService {
  private readonly logger = new Logger(MinioClientService.name);
  private readonly defaultBucketName = 'default';

  constructor(private minio: Minio.Client) {}

  async upload(
    file: Express.Multer.File,
    bucketName: string = this.defaultBucketName,
  ) {
   // some code & logic
  }
}

我在 admins.service 中导入了上述服务:

@Injectable()
export class AdminsService {
  constructor(
    @InjectRepository(AdminsRepository)
    // this line ????
    private minioClientService: MinioClientService,
    private adminsRepository: AdminsRepository,
  ) {}

  async update(file) {
    if (file) {
      // error happens here ????
      const uploadedImage = await this.minioClientService.upload(file);
      console.log(uploadedImage);
    }
  }

和错误信息:

我也在admins.moudle中导入了minio-client.module,启动应用时没有报错。调用此 update 方法时会发生错误。

【问题讨论】:

    标签: node.js nestjs minio


    【解决方案1】:

    你的 @InjectRepository() 装饰器放错了位置。该装饰器现在告诉 Nest 为应该是 MinioClientService 的参数注入 AdminsRepository,但这超出了 Typescript 可以读取的范围。将其用于您的构造函数

      constructor(
        // this line ?
        private minioClientService: MinioClientService,
        @InjectRepository(AdminsRepository)
        private adminsRepository: AdminsRepository,
      ) {}
    

    它应该可以正常工作。

    【讨论】:

      猜你喜欢
      • 2019-12-17
      • 2021-12-10
      • 2021-09-26
      • 1970-01-01
      • 1970-01-01
      • 2020-06-26
      • 2020-04-28
      • 2021-01-20
      • 2022-10-16
      相关资源
      最近更新 更多