首页 > 解决方案 > req.body 未定义,但 body-parser 已初始化

问题描述

我一直收到一个错误,调用 req.body 是未定义的,但我在中间件中包含了 body-parser。我像应该使用它一样使用它,至少我认为我这样做是因为我收到了警告

'body-parser' 已弃用

正文解析器的初始化是否正确?为什么我会收到这个错误?

app.use(bodyParser.json())

编辑

我刚刚将 bodyParser 添加到我的路由中间件中,现在它可以工作了。当没有教程这样做时,有人可以解释为什么它只能这样工作吗?

不起作用:

app.use('/api/users', authRoute)

作品

app.use('/api/users', bodyParser.json(), authRoute)

编辑2

这是因为我在路由中间件下面定义了中间件,我不知道顺序很重要,也许不仅仅是我,所以我离开了这个编辑

标签: javascriptnode.jsexpressbody-parser

解决方案


这个答案真的帮助了我!谢谢。我在路由下面定义中间件时犯了同样的错误,也是一件事,"^express version 4.17.1"而不是app.use(bodyParser.json());,我们也可以使用app.use(express.json());它,它也可以正常工作,可能是这个版本的 express 内置了对JSON.


推荐阅读