说明
如果不配置解析表单的中间件,则req.body
默认为undefind
。配置时需要注意将中间件配置在路由之前。
解析JSON格式的数据
app.use(express.json());
解析url-encoded格式的数据
app.use(express.urlencoded({ extended:false }));
被解析的数据将会放在req.body
中
解析multipart/form-data格式的数据
推荐使用multer中间件来解析multipart/form-data
格式的表单数据。
安装
npm i multer
在需要解析FormData数据的模块中导入并配置
const multer = require("multer");
// 导入内置的路径模块
const path = require("path");
// 创建multer实例对象,通过dest属性指定文件的存放路径
const upload = multer({ dest:path.join(__dirname,"../uploads") });
通过upload.single()
用来解析局部的formData格式的表单数据
app.post("/add",upload.single("cover_img"),(req,res)=>{
// 将文件类型的数据解析到req.file属性中
console.log(req.file);
console.log("------------------");
// 将文本类型的数据解析到req.body属性中
console.log(req.body);
res.send("ok");
});
用postman
测试一下
服务器打印的结果
版权声明:本文为weixin_47584536原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。