为了账号安全,请及时绑定邮箱和手机立即绑定

在 req.body 中接收两个对象

在 req.body 中接收两个对象

温温酱 2021-11-18 21:09:37
我从一个 Unity 应用程序以 x-form-encoded 格式接收到我的 NodeJs web-server 的 POST 请求。我使用app.use(bodyParser.urlencoded({ extended: true})), 来解析内容。但是req.body返回两个对象,问题是我无法访问单个属性的属性,因为它们既没有包装在数组中也没有包装在对象中。在 console.log(req.body)我得到以下结果{ sessionId: '5ujgp6vwk1pivth4', gameId: '1', level: '0', score: '0' }            { sessionId: '5ujgp6vwk1pivth4', gameId: '2', level: '0', score: '0' }我想知道这是哪种类型的数据类型以及我如何能够访问特定属性,假设如果我这样做 console.log(req.body.sessionId),我会得到5ujgp6vwk1pivth45ujgp6vwk1pivth4即使我尝试将它推入一个数组,我仍然得到相同的结果。我正在尝试将这些对象提取到一个数组中,以便我可以更轻松地访问它们。
查看完整描述

1 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

不幸的是,正在发生的事情与您认为正在发生的事情不同,这里没有足够的信息来弄清楚实际发生了什么。你说 req.body 正在返回两个对象,但它们没有被包裹在一个数组或另一个对象中,这从根本上是不可能的。


鉴于可用的信息,我最好的猜测是 bodyParser 完全按照它应该的方式工作,但是无论您用来发送请求的客户端应用程序发送两个请求,而您认为它只发送一个请求,因此当您记录它时,您会看到两个对象并假设它们来自单个调用,console.log但情况似乎并非如此。


为了确认这一点,我可能会将这样的内容粘贴到文件的底部,然后使用它来记录而不是console.log直接使用。这将证明它是来自两个不同路由调用的两个不同日志条目。


let counter = 0;

function logWithCounter( ...msg ) {

  console.log( counter++, ...msg );

}


查看完整回答
反对 回复 2021-11-18
  • 1 回答
  • 0 关注
  • 253 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号