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

express接收表单post请求时request.body为空无法获取数据如何解决

问题原因与解决方案

为什么request.body为空

Express框架默认不会解析POST请求的请求体内容,你当前表单提交的Content-Type是application/x-www-form-urlencoded类型,没有配置对应的解析中间件的情况下,request.body就会是空对象{},自然取不到对应的表单字段值。

解决方法

  • 第一步:在你的Express应用代码中,注册路由的代码之前,添加表单请求体解析中间件:
    如果你的Express版本 >= 4.16.0(目前绝大多数版本都满足),直接使用框架自带的中间件即可:
// 写在所有路由定义之前
const express = require('express')
const app = express()

// 解析 application/x-www-form-urlencoded 类型的请求体(对应普通表单提交)
app.use(express.urlencoded({ extended: true }))
// 如果后续需要接收JSON格式的请求,可以再加这行
app.use(express.json())

如果你的Express版本低于4.16.0,需要先安装body-parser依赖再引入使用:

npm install body-parser

然后在代码中引入注册:

const bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({ extended: true }))
app.use(bodyParser.json())
  • 第二步:确认你的/dbinsert路由注册代码,是在上述中间件注册之后执行的,如果路由写在中间件前面,中间件不会对该路由生效。
  • 第三步:重新启动服务测试,此时request.body就能正常拿到表单提交的字段,你可以直接通过request.body.wo_num、request.body.qty等获取对应输入框的值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 06:39:04