我想尽一切办法在 POST 方法中获取我的请求正文。我在原始和表单数据模式下使用邮递员。尝试从 react 调用此 API 没有任何效果。 console.log(req.body)
打印空白。 {}
请让我知道我缺少什么。
const express = require('express');
const app = express();
const bodyParser = require("body-parser");
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
const port = 9000
const enableWs = require('express-ws');
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.post('/', (req, res) => {
console.log(req.body);
res.send('Hello World!')
});
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`)
});
答案 0 :(得分:0)
现在,我重新创建了您的应用,它确实有效。
我正在使用 insomnia 来测试您的 api。 使用 Post 和一些 JSON 到路由“/”。 然后在 Console.log 中我得到请求正文。
控制台.log
也许您的测试不正确?如果有任何问题,请回复我。
我的猜测是你没有在你的 POST 请求中传递任何东西,因此是空的正文。
答案 1 :(得分:0)
请务必在邮递员的请求标头中将 Content-Type
指定为 application/json
。
为了让 body-parser 从 JSON 解析 req.body
,您的请求必须指定内容实际上是 JSON。否则,它不会解析它;导致您的空白 req.body
。
fetch('http://localhost:9000', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
message: 'hi',
}),
})