首页 > 解决方案 > 如何从 Get Request In Express 中获取正文?

问题描述

当我尝试执行此操作时,我的代码返回无效文本。

app.post("/charge", (req, res) => {
    console.log(req.body)
})

标签: javascriptexpress

解决方案


正如req.body的文档所说:

req.body包含在请求正文中提交的数据键值对。默认情况下,它是未定义的,并且在您使用主体解析中间件(如express.json()or )时填充express.urlencoded()

以下示例展示了如何使用正文解析中间件来填充 req.body。

默认情况下,请求的主体还没有从传入的流中读取,因此它还没有被解析成req.body任何一个。要将其读取并解析为req.body,您必须使用一些适当的中间件来为您完成此操作(或者您可以自己手动完成,但通常使用预先编写的中间件为您完成这项工作更容易)。

使用哪个中间件取决于正文中数据的类型(urlEncoded 数据、JSON 数据或其他)。

这是文档中的示例:

var express = require('express')

var app = express()

app.use(express.json()) // for parsing application/json
app.use(express.urlencoded({ extended: true })) // for parsing application/x-www-form-urlencoded

app.post('/profile', function (req, res, next) {
  console.log(req.body)
  res.json(req.body)
})

推荐阅读