在前端使用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字符串化,这就是我得到的
{"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
答案 0 :(得分:1)
我通过在返回对象中获取父键并从那里运行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
答案 1 :(得分:0)
非常感谢安迪。 这对我也有用:
Object.getOwnPropertyNames(req.body["data"]).toString();