You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BodyParser导致所有API请求(含基础GET请求)挂起如何修复

问题原因
  • bodyParser.json是生成解析中间件的工厂函数,必须调用后才会返回符合Express规范的中间件实例。你当前代码直接将未执行的函数本身传入app.use(),该逻辑不会自动处理请求、也不会调用next()将控制权移交到后续路由,因此所有请求都会被卡住无响应。
  • 你的/data POST路由存在笔误:将响应对象res错写为请求对象req,调用req.status()会抛出异常,该问题会在bodyParser问题修复后显现,需要同步修正。
修复方案
  1. 给bodyParser.json添加括号,执行后拿到合法中间件传入app.use
  2. 将POST路由中的req.status修改为res.status

小提示:Express 4.16.0及以上版本已内置JSON请求体解析能力,无需额外安装body-parser依赖,直接使用app.use(express.json())即可实现相同效果。

修复后完整代码
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替换为res
    res.status(200).json({
        message: req.body
    })
});

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

内容的提问来源于stack exchange,提问作者Arcturus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 17:57:05