繁体   English   中英

在不接受请求正文中以快递形式发布请求

[英]Post request in express in not accepting request body

我尝试了一切以在 POST 方法中获取我的请求正文。 我正在使用具有原始和表单数据模式的 postman。 尝试从反应中调用此 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}`)
});

现在,我重新创建了您的应用程序,它确实有效。

我正在用失眠来测试你的 api。 到路线“/”与 Post,和一些 JSON。 然后在 Console.log 我得到请求正文。

Insomnia API 测试到 POST

控制台日志

用于 API 的 console.log

也许你测试不正确? 如果有任何问题,请回复我。

我的猜测是你没有在你的 POST 请求中传递任何东西,因此是空的。

请务必在邮递员的请求标头中将Content-Type指定为application/json

为了让 body-parser 解析来自req.body的 req.body,您的请求必须指定内容实际上是 JSON。 否则,它不会解析它; 导致您的空白req.body

fetch('http://localhost:9000', {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json',
    },
    body: JSON.stringify({
        message: 'hi',
    }),
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM