Nestjs this.minioClientService.загрузка не является функцией

#node.js #nestjs #minio

Вопрос:

Это мой мини-клиент.сервис:

 @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 amp; logic
  }
}
 

Я импортировал вышеуказанную службу в моих администраторах.:

 @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);
    }
  }
 

И Сообщение Об Ошибке:
введите описание изображения здесь

Я также импортировал minio-client.module в admins.moudle, и при запуске приложения ошибки нет. Ошибка возникает при вызове этого метода обновления.

Ответ №1:

Ваш @InjectRepository() декоратор оказался не в том месте. Этот декоратор теперь говорит Nest ввести AdminsRepository параметр , который должен быть MinioClientService , но это выходит за рамки того, что может прочитать машинопись. Вместо этого используйте это для своего конструктора

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

И это должно работать просто отлично.