【问题标题】:body-parser parse by indexbody-parser 按索引解析
【发布时间】:2017-07-01 17:03:32
【问题描述】:

前端使用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 请求 5957c1368225f446c84dde9b 中获取值 _id

我试图弄清楚如何在不知道它的情况下访问这个值,因为这个值实际上是要从 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

【问题讨论】:

    标签: node.js express query-string body-parser


    【解决方案1】:

    我通过在返回对象中获取父键并从那里运行for in 以获取我们想要的字段来解决这个问题。我将它封装在一个函数中,这样我们就可以查询任何字段(帐户、_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

    【讨论】:

      【解决方案2】:

      非常感谢安迪。 这也对我有用:

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

      【讨论】:

        猜你喜欢
        • 2016-07-25
        • 2016-10-14
        • 2017-02-26
        • 2021-02-15
        • 1970-01-01
        • 1970-01-01
        • 2016-11-10
        • 2017-02-25
        • 2016-02-19
        相关资源
        最近更新 更多