【问题标题】:Express request body return null快递请求正文返回 null
【发布时间】:2021-08-02 04:15:03
【问题描述】:

我对@9​​87654321@ POST 的请求有疑问,

const express = require('express')
const app = express()

app.use(express.json())
app.use(express.urlencoded({extended: true}))


app.post('/movie/add', (req, res) => {
  console.log(req.body) // {}

  //
})

谁能告诉我,为什么在发送一些数据后:

{
    "msg":"Hello"
}

然后我的req.body 回复我{}?他应该返回我的 msg 值的对象,而不是我有一个空数组:/

感谢您的帮助!

【问题讨论】:

  • 响应在哪里? const errors = validationResult(req);下面应该有res.json(xxx)
  • @MicFung 这不重要,为什么我的console.log 还给我{}
  • 请向我们展示您发布的程序的完整帖子/图片
  • 代码中没有错误。你在使用POST 请求吗?有截图吗?
  • @markWanka 因为您的路线没有收到任何数据。问题可能出在你的前端

标签: javascript node.js typescript express


【解决方案1】:

如果要使用请求正文,您需要做两件事。

1.in request header include Content-type application/json

2.在代码中使用中间件解析成json。 app.use(express.json());

Note use  ​app.use(express.json()) before route declartion.

view example here

默认情况下body是未定义的 app.use(express.json());帮助您定义数据 而 content-type application/json 允许你传递 json。如果你没有包含 content-type application/json request.body 将返回定义空对象 { }。

【讨论】:

    【解决方案2】:

    【讨论】:

    • 另外,即使它没有被弃用,请务必提供一个基本示例,说明如何使用库来解决特定问题,而不仅仅是链接到库。
    猜你喜欢
    • 1970-01-01
    • 2019-08-26
    • 2017-03-12
    • 2016-03-31
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 2019-11-03
    • 2020-03-24
    相关资源
    最近更新 更多