You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postman form-data请求无法被Express解析,raw/urlencoded请求正常

问题核心原因

Express 内置的 express.json() 和 express.urlencoded() 中间件不支持解析 multipart/form-data 类型的请求体,也就是你在 Postman 里选择 form-data 时对应的请求格式,所以才会出现 raw 和 urlencoded 格式能正常解析,form-data 无法解析的情况。

解决方案

要处理 form-data 类型的请求,需要引入专门解析 multipart 格式的中间件,常用方案如下:

  • 仅处理普通表单字段(无文件上传需求):可使用 express-formidable 或 multer 搭配内存存储
  • 需同时处理文件上传:优先使用 multer 中间件

配置示例(multer 方案)

  1. 安装依赖
npm install multer
  1. 业务代码中引入配置
const multer = require('multer');
// 配置为仅解析普通表单字段,不接收文件的模式
const upload = multer().none();

// 仅在需要接收 form-data 的路由上挂载中间件
app.post('/你的接口路径', upload, (req, res) => {
  // 此时 req.body 即可正常拿到 form-data 提交的字段
  console.log(req.body);
  res.send(req.body);
})

注意事项

  • 不要将 multer 中间件全局挂载,建议仅在需要接收 form-data 格式的路由上单独使用,避免额外性能消耗
  • 如果需要接收上传文件,可参考 multer 官方文档配置对应的存储规则、文件过滤逻辑即可
问题参考截图
  • Postman form-data 请求截图:
    Postman form-data请求
  • body->raw 请求截图:
    body->raw请求

内容的提问来源于stack exchange,提问作者omar anas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 11:36:03