BodyParser 导致所有 API 请求挂起。甚至基本的 GET 请求

BodyParser causes all API requests to hang. Even basic GET requests

正如标题所说,我根本不明白这是怎么回事。一旦我包含 app.use(bodyParser.json) 行,Postman 就会继续处理我提出的任何请求。我以为我搞砸了我的路线,所以我失去了一天的大部分时间。

我在这个小测试文件中缩小了范围:

const express = require("express")
const bodyParser = require("body-parser")
const env = require("dotenv");
const app = express()

env.config();
app.use(bodyParser.json);

app.get("/", (req, res) => {
    res.status(200).json({
        message:"Hello World"
    })
});

app.post("/data", (req, res) => {
    req.status(200).json({
        message: req.body
    })
});

app.listen(process.env.PORT, ()=>{
    console.log(`Server listening at port ${process.env.PORT}`);
})

谁能告诉我这是怎么回事,我该如何解决?

您需要将 JSON 正文解析器作为函数调用(带括号):

app.use(bodyParser.json());

post 方法“数据”中存在另一个错误,您应该从“res”对象调用状态:

app.post("/data", (req, res) => {
    res.status(200).json({
        message: req.body
    })
});