在 req.body 中接收两个对象

我从一个 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),我会得到


5ujgp6vwk1pivth4


5ujgp6vwk1pivth4

即使我尝试将它推入一个数组,我仍然得到相同的结果。


我正在尝试将这些对象提取到一个数组中,以便我可以更轻松地访问它们。


温温酱
浏览 254回答 1
1回答

慕莱坞森

不幸的是,正在发生的事情与您认为正在发生的事情不同,这里没有足够的信息来弄清楚实际发生了什么。你说 req.body 正在返回两个对象,但它们没有被包裹在一个数组或另一个对象中,这从根本上是不可能的。鉴于可用的信息,我最好的猜测是 bodyParser 完全按照它应该的方式工作,但是无论您用来发送请求的客户端应用程序发送两个请求,而您认为它只发送一个请求,因此当您记录它时,您会看到两个对象并假设它们来自单个调用,console.log但情况似乎并非如此。为了确认这一点,我可能会将这样的内容粘贴到文件的底部,然后使用它来记录而不是console.log直接使用。这将证明它是来自两个不同路由调用的两个不同日志条目。let counter = 0;function logWithCounter( ...msg ) {  console.log( counter++, ...msg );}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript