【发布时间】:2020-08-24 20:14:32
【问题描述】:
谁能帮我理解为什么我得到一个空的身体?
文档上说 express.json() 使用 body-parser,所以它与我使用 express.json() 或 bodyParser() 相同?
关于文档还说我可以通过 json 对象选项的选项设置来提供标头的类型...我认为它是这样的:
app.use(express.json({ type: 'application/json' }))
我的标题内容类型说:'content-type':'application/x-www-form-urlencoded' 正如文档所说,默认值为“application/json”。
我需要以 json 格式取回表单值,以便我可以保存数据库和其他内容。
【问题讨论】:
-
express.json() 默认无法以您想要的方式解析表单字段。您需要将类型更改为 'application/x-www-form-urlencoded'
-
好的,所以如果我将 app.use(express.json()) 设置为中间件并将其配置为接受 x-www-form-urlencoded,它将在路由上工作,但如果在另一条路线上,如 app.post('/users/avatar'...) 我想要一张图片,或者在 app.get('/users/me'...) 我想要一个 json ......我该如何配置这些类型的东西? @Cehhiro 感谢您显示链接,但我认为它有点不同。
-
我试过这个: app.use(express.urlencoded({ extended: true })) app.use(express.json({ type: 'application/x-www-form-urlencoded' } )) 仍然得到空对象。当我使用邮递员时,它确实有效。
标签: javascript node.js json express