body-parser按索引parsing

在后端使用DataTables前端和nodejs + express + mongoose + body-parser

当我试图删除表中的一行时,这是传递给后端(HTTP DELETE)

action:remove data[5957c1368225f446c84dde9b][_id]:5957c1368225f446c84dde9b data[5957c1368225f446c84dde9b][updatedAt]:2017-07-01T15:35:18.407Z data[5957c1368225f446c84dde9b][createdAt]:2017-07-01T15:35:18.407Z data[5957c1368225f446c84dde9b][account]:test@gmail.com data[5957c1368225f446c84dde9b][name]:Beryl Welch data[5957c1368225f446c84dde9b][number]:074-882-4899 x241 data[5957c1368225f446c84dde9b][email]:Naomi.Lemke@yahoo.com data[5957c1368225f446c84dde9b][__v]:0 

我试图从DELETE请求中获取值_id 5957c1368225f446c84dde9b

我想弄清楚如何在不知道它的情况下访问这个值,因为这个值实际上是从mongo中删除的文档的ID

如果我req.query stringify,这是我得到的

 {"action":"remove","data":{"5957c3e07c5c3c150c10f5cb":{"_id":"5957c3e0 7c5c3c150c10f5cb","updatedAt":"2017-07-01T15:46:40.635Z","createdAt":"2017- 07-01T15:46:40.635Z","account":"test@gmail.com","name":"Breanna Ratke","number": "(055) 304-7364 x20329","email":"Mathilde.Moore51@hotmail.com","__v":"0"}}} 

有任何想法吗?

谢谢/ T

我通过获取返回对象的父键来解决这个问题,并从那里运行一个for in来得到我们想要的字段。 我把它封装在一个函数中,所以我们可以查询任何字段(account,_id等)的返回对象。

 var res = {"action":"remove","data":{"5957c3e07c5c3c150c10f5cb":{"_id":"5957c3e07c5c3c150c10f5cb","updatedAt":"2017-07-01T15:46:40.635Z","createdAt":"2017-07-01T15:46:40.635Z","account":"test@gmail.com","name":"Breanna Ratke","number": "(055) 304-7364 x20329","email":"Mathilde.Moore51@hotmail.com","__v":"0"}}} function getValueFromObj(desiredField) { for (var data in res.data) { for (var k in res.data[data]) { // res.data[data] is the "data" object if (k === desiredField && res.data[data].hasOwnProperty(k)) { return res.data[data][k]; } } } } console.log(getValueFromObj('_id')); // 5957c3e07c5c3c150c10f5cb console.log(getValueFromObj('account')); // test@gmail.com 

非常感谢Andy。 这也适用于我:

 Object.getOwnPropertyNames(req.body["data"]).toString(); 
Interesting Posts