今天在用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,看了源碼也沒發現有對該請求頭進行驗證的,有大佬知道什么原因嗎