ERROR [ExceptionHandler] Nest无法解析依赖项-在Nest.js中阅读CSV文件时出错

dohp0rv5  于 2023-04-03  发布在  其他
关注(0)|答案(1)|浏览(345)

我试图读取一个上传的CSV文件在巢,并得到以下错误
' ERROR [ExceptionHandler] Nest无法解析AssetsController(AssetsService,?)的依赖项。请确保索引[1]处的参数CsvParser在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.log(" => ", csvPath);
        const stream = fs.createReadStream(csvPath)
        const entities: ParsedData<InstanceType<any>> = await this.csvParser.parse(stream, Asset)
        // You will get JSON
        console.log(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 {}

我一直在关注https://copyprogramming.com/howto/how-do-i-read-an-uploaded-file-text-csv-using-nestjs-and-multer

piok6c0g

piok6c0g1#

阅读nest-csv-parser的文档:

CsvParser提供程序由CsvModule注册和导出,因此您必须将其导入到AssetsModule模块中。

相关问题