javascript - 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
这是因为我在路由中间件下面定义了中间件,我不知道顺序很重要,也许不仅仅是我,所以我离开了这个编辑
解决方案
这个答案真的帮助了我!谢谢。我在路由下面定义中间件时犯了同样的错误,也是一件事,"^express version 4.17.1"
而不是app.use(bodyParser.json());
,我们也可以使用app.use(express.json());
它,它也可以正常工作,可能是这个版本的 express 内置了对JSON
.
推荐阅读
- ios - swift 3 中子类化的 UITableViewCell 的 contentView 始终为 320 点
- sql - 获取以“.”分隔的字符串中的第 n 个单词
- angular5 - 在angular5中更新amcharts中的数据
- php - Laravel - 防止多余的字符 slug 参数
- java - 创建新的android studio项目时出错
- python - 如何将索引彩色图像 numpy 数组转换为 RGB 颜色空间?
- .net - 当应用程序关闭时,当事件处理程序是异步的时,UWP 不会结束调试
- internet-explorer - 我可以在 ActiveX 中使用 IHTMLDocument2 访问 HttpOnly cookie 吗?
- javascript - 在 JS (ES6) 中修改 post 请求的数据
- tensorflow - 为循环神经网络 RNN 定义标签