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

为何已弃用的body-parser会导致Express应用崩溃?

为什么弃用的body-parser无法正常工作?

你的问题不是因为body-parser被弃用导致崩溃,而是调用方式写错了。

看你用body-parser的代码里这一行:

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

这是错误的写法。app.use()需要接收中间件函数作为参数,而你直接传了bodyParser模块本身,外加一个配置对象,这不符合Express的中间件使用规则,所以导致应用崩溃。

正确的body-parser使用方式应该是调用它的urlencoded方法生成中间件:

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

哪怕body-parser已经被Express内置(从Express 4.16.0开始,express.urlencoded和express.json就是body-parser的内置版本),但如果你单独安装了body-parser包,只要写法正确,它依然能正常工作。

你注释掉body-parser后改用express.urlencoded({ extended: true })能正常运行,是因为这种写法是正确的——直接调用Express内置的对应方法生成中间件,符合app.use()的参数要求。

总结:崩溃和body-parser是否弃用无关,纯粹是调用语法错误。修正写法后,单独的body-parser包依然可以正常使用(虽然更推荐用Express内置的版本)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 16:10:31