今天在用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,看了源码也没发现有对该请求头进行验证的,有大佬知道什么原因吗
