express解析请求体数据

说明

如果不配置解析表单的中间件,则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测试一下
postman测试formData类型数据
服务器打印的结果
服务器打印的结果


版权声明:本文为weixin_47584536原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。