在主体中接收两个对象
我正在从Unity应用收到以x格式编码格式的POST请求到我的NodeJs Web服务器。
我使用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
即使我尝试将其推入数组,我仍然得到相同的结果。
我正在尝试将这些对象提取到数组中,以便我可以更轻松地访问它们。
回答如下:[不幸的是,正在发生的事情与您所认为的正在发生的事情有所不同,并且这里没有足够的信息来确定实际正在发生的事情。您说req.body返回两个对象,但是它们没有包装在数组或另一个对象中,这从根本上是不可能的。
考虑到可用信息,我的最佳猜测是bodyParser可以正常工作,但是无论您用来发送请求的客户端应用程序是在发送两个请求的地方,您认为它仅发送一个请求,因此在记录时,正在看到两个对象,并假设它们来自一次调用console.log
的情况,看来情况并非如此。
[确认这一点,我可能会将类似的内容粘贴到文件的底部,然后使用它来登录而不是直接使用console.log
。这将证明它是来自两个不同的路由调用的两个不同的日志条目。
let counter = 0;
function logWithCounter( ...msg ) {
console.log( counter++, ...msg );
}