首页 > 解决方案 > 快递请求正文返回 null

问题描述

express 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价值的对象,而不是我有一个空数组:/

谢谢你的帮助!

标签: javascriptnode.jstypescriptexpress

解决方案


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

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

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

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

在此处查看示例

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


推荐阅读