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