首页 > 解决方案 > Node.js express - POST 请求的主体始终为空

问题描述

我正在尝试使用 Node.JS 框架中的 Express 读取 POST 请求的正文。我使用 HTML 表单发送 HTTP POST 请求。我在 WireShark 上检测到带有以下数据的 POST 请求:

在此处输入图像描述

这说明请求发送成功。我期待 JSON 格式,这是 Express 为我成功解析的格式,但无论我尝试什么,这种格式似乎都不起作用。我目前的实现是这样的:

var express = require('express');
var bodyParser = require('body-parser');
var app = express();
var jsonParser = bodyParser.json()

//Import static files
app.use(express.static('../public'))

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

app.post('/', jsonParser, (req, res) => {
    console.log(req.body);
    res.send(200);
});

app.listen(port, () => console.log("Server started"));

无论我从其他帖子中尝试什么,它似乎仍然没有返回任何数据。

在此处输入图像描述

有谁知道如何解决这个问题?

标签: javascripthtmlnode.jsexpresspost

解决方案


为什么要在应用程序路由中使用“jsonParser”?尝试类似:

const express = require('express');
const bodyParser = require('body-parser');

const app = express();
app.use(bodyParser.urlencoded({ extended: true }));

app.post('/post-test', (req, res) => {
    console.log('Got body:', req.body);
    res.sendStatus(200);
});

推荐阅读