Express request.body 为空

Posted

技术标签:

【中文标题】Express request.body 为空【英文标题】:Express request.body is empty 【发布时间】:2021-09-17 12:54:49 【问题描述】:

这是我的代码,每当我使用邮递员或 cURL 发送帖子请求时,我都会得到一个空正文

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

app.use(express.json())

app.post('/',(req,res)=>
    res.json(req.body);
);

app.listen(3000)

https://i.stack.imgur.com/OqygG.png

【问题讨论】:

您是否在启动服务器之前或AFTER 进行了更改?这看起来应该可以,但是您对快速服务器所做的任何更改都需要重新启动。 我刚刚尝试了您的代码,它按预期工作,发送的正文在响应中返回。 可能您必须重新启动应用才能使更改生效 你有Content-Type: application/json吗? 【参考方案1】:

检查您的 html 表单名称标签。如果名称标签丢失,您将无法从 req.body 上获取数据。

<input name="example" id="example1" />

【讨论】:

【参考方案2】:

您应该使用内容类型标头。试试:

⚡  curl -X POST -d '"title": "test title"' -H "Content-Type: application/json" http://localhost:3000/
"title":"test title"%  

【讨论】:

以上是关于Express request.body 为空的主要内容,如果未能解决你的问题,请参考以下文章

尝试在 Axios GET 的正文中发送数据以在 Django 后端使用,但 request.body 的打印为空

尽管成功回调,但 Express API 超时

express开发实例

Typescript爬虫实战(2) ---- 使用表单的形式对接口进行保护

Nodejs express 获取url参数,post参数的三种方式

Express + Postman,req.body 为空