app.use(bodyParser.json())无法正常解析数据

来源:5-11 获取响应数据 - 需求分析+实现

精壮的成年男子

2019-10-21

// server.js
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true }))

router.post('/fking/post', function(req, res) {
	console.log(req.body)
	res.json(req.body)
})



// demo
axios({
  method: 'post',
  url: '/fking/post',
  data: {
    a: 1,
    b: 2
  }
}).then((res) => {
  console.log(res)
})

axios({
  method: 'post',
  url: '/fking/post',
  data: new URLSearchParams('q=URLUtils.searchParams&topic=api')
}).then((res) => {
  console.log(res)
})

let formdata = new FormData()
formdata.append('a', 1)
formdata.append('b', 2)
axios({
  method: 'post',
  url: '/fking/post',
  data: formdata
}).then((res) => {
  console.log(res)
})

图片描述

Request Payload的情况下拿不到解析后的数据
FormData在content-type: application/x-www-form-urlencoded的情况下可以拿到数据
FormData在content-type: multipart/form-data; 的情况下也拿不到数据

暂时未找到原因

写回答

1回答

精壮的成年男子

提问者

2019-10-21

问题解决了
Request Payload的情况下设置Content-Type拼错一个字,导致 app.use(bodyParser.json()) 没有生效
content-type: multipart/form-data;时,需要另一个中间件帮助解析数据,我以为app.use(bodyParser.urlencoded({ extended: true }))就可以了

问题好像关不掉=。=

0
0

下一代前端开发语言 TypeScript从零重构axios

课程从零开始重构功能完整的JS库,是学习造轮子的不二之选!

2631 学习 · 877 问题

查看课程