Я пытаюсь прочитать загруженный файл CSV в гнездо и получаю следующую ошибку
' ОШИБКА [ExceptionHandler] Nest не может разрешить зависимости AssetsController (AssetsService,?). Убедитесь, что аргумент CsvParser по индексу [1] доступен в контексте AssetsModule».
Я импортировал пакет: https://www.npmjs.com/package/nest-csv-parser
import {CsvParser} from 'nest-csv-parser'
Добавлен конструктор
constructor(private readonly csvParser: CsvParser) {}
Создал сущность
class Asset {
assetID: string;
assetName: string;
assetType: string;
assetDescription: string;
assetLocation: string;
assetImage: string;
assetStatus: string;
assetNotes: string;
assetClientID: string;
assetSiteID: string;
assetContractorID: string;
assetMaintenanceID: string;
assetDocumentID: string;
assetCreated: string;
assetUpdated: string;
assetCreatedBy: string;
assetUpdatedBy: string;
}
и моя функция выглядит так
@Get('import')
async parseCSVFile()
{
const csvPath = getCSVFile();
console.info(" => ", csvPath);
const stream = fs.createReadStream(csvPath)
const entities: ParsedData<InstanceType<any>> = await this.csvParser.parse(stream, Asset)
// You will get JSON
console.info(entities);
}
Модуль
import { Module } from '@nestjs/common';
import { AssetsService } from './assets.service';
import { AssetsController } from './assets.controller';
import { MongooseModule } from '@nestjs/mongoose';
import { AssetSchema } from 'assets/schemas/assets.schema';
@Module({
imports: [
MongooseModule.forFeature([{name: 'Assets', schema: AssetSchema}])
],
providers: [AssetsService],
controllers: [AssetsController]
})
export class AssetsModule {}
Я следил за Как мне прочитать загруженный файл (текст/.csv) с помощьюnesjs и Multer
Отредактировал мой вопрос и добавил модуль
Прочтите документы nest-csv-parser
:
этот поставщик CsvParser
зарегистрирован и экспортирован CsvModule
, поэтому вы должны импортировать его в свой модуль AssetsModule
.
Вы правы, у меня был этот импорт на app.module - спасибо
покажите нам модуль nestjs, который регистрирует этот
AssetsController
контроллер