我试图读取一个上传的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
1条答案
按热度按时间piok6c0g1#
阅读
nest-csv-parser
的文档:该
CsvParser
提供程序由CsvModule
注册和导出,因此您必须将其导入到AssetsModule
模块中。