ERROR [ExceptionHandler] Nest can't resolve dependencies of the FilesService
ERROR [ExceptionHandler] Nest can't resolve dependencies of the FilesService (?). Please make sure that the argument fileRepository at index [0] is available in the FilesModule context.
FileModule
import { Module } from '@nestjs/common';
import { FilesService } from './files.service';
@Module({
controllers: [],
providers: [FilesService],
exports:[FilesService]
})
export class FilesModule {}
FileService
import { HttpException, HttpStatus, Injectable } from '@nestjs/common';
import { InjectModel } from '@nestjs/sequelize';
import { file } from './files.model';
import * as fs from 'fs'
import * as path from 'path'
import * as uuid from 'uuid'
import { FileType } from './File.Types';
import { CreateFileDto } from './dto/CreateFile.dto';
import { CreateTodoDto } from 'src/todos/dto/CreateTodo.dto';
@Injectable()
export class FilesService {
constructor(@InjectModel(file) private FileProvider: typeof file){}
readonly fileExtensions: Array<string> = ['jpeg', 'jpg', 'gif', 'png', 'svg']
async UploadFiles(dto: CreateTodoDto, Files: Array<Express.Multer.File>){
let i: number = 0
for(i=0;i<Files.length;i++)
{
await this.UploadFile(dto, Files[i])
}
}
async UploadFile(dto: CreateTodoDto, File: Express.Multer.File){
try{
const TypeFile = File.originalname.split('.').pop()
const FileName = uuid.v4() + TypeFile
const fileType: FileType =
this.fileExtensions.includes(TypeFile) ? FileType.image : FileType.other;
let FileDto: CreateFileDto = new CreateFileDto(dto.TodoId, FileName, fileType)
const FilePath = path.resolve(__dirname, '..', 'static')
if(!fs.existsSync(FilePath)){
fs.mkdirSync(FilePath, {recursive: true})
}
fs.writeFileSync(path.join(FilePath, FileName), File.buffer)
await this.FileProvider.create(FileDto)
}catch(e){
throw new HttpException('Ошибка при записи файла на диск', HttpStatus.INTERNAL_SERVER_ERROR)
}
}
}
Если из FileModule из Providers убрать FilesService то ошибки не возникает