今天在用nest.js上传文件时踩了一个坑。nest,js代码如下
import { Controller ,Body,Res,UploadedFile, UseInterceptors} from '@nestjs/common'; import {FileInterceptor} from "@nestjs/platform-express" @Post("/upload") @UseInterceptors(FileInterceptor("file")) upload_interface(@UploadedFile()file,@Body() body,@Res() res){ // fs.writeFile(path.join( resolve(__dirname),"../../../src/public/") + file.originalname, file.buffer.toString(), (err)=>{ if(err){ res.json({"msg":err.message}) }else{ res.json({"msg":"success","file":file.originalname}) } } ) // 以回车加换行符分割 var interface_list = file.buffer.toString().split("\r\n") interface_list.forEach(element => { // 替换\n let data = element.trim().replace(/\n/g,"").split(",") console.log(data) this.interfaceService.add_interface({ "interface_name":data[0], "method":data[1], "url":data[2], "project_id":Number.parseInt(data[3]), }) }); }
上传的时候是用的postman调的接口,在上传的时候,我把Content-Length字段给删除了,导致该拦截器拦截到的是undefined,看了源码也没发现有对该请求头进行验证的,有大佬知道什么原因吗