【问题标题】:Access array items in post request object in Node访问Node中发布请求对象中的数组项
【发布时间】:2018-12-07 22:14:59
【问题描述】:

我正在发送一个类似于下面 myJsonObj 的对象作为节点中的发布请求。 在服务器端,我想循环访问对象并构建类似于 { "id": 50, "damage_type": "light" } 的新对象,这些将用于调用我的 SQL 字符串生成器。

我目前的问题是我不知道如何获得我的damage_type 物品。我的 id 很好 console.log(req.body.id) 。但是console.log(req.body.damage_type[0]); 不打印任何东西。 如果我执行 console.log(req.body) 这就是我在终端中看到的

{ id: '50',
      'damage_type[]': [ 'missing', 'broken', 'light' ] }

所以我有点困惑为什么我不能访问对象中的数组项。

let myJsonObj = {
        "id": 50,
        "damage_type": ["missing", "broken", "light"]
      }


router.post('/damage', (req, res) => 

// structure I want to send to createSql function.
// { "poi_id": 50, "damage_type": "light" }
{


    req.body.damage_type.forEach(function(damage) {
    let objToDb = {}
    objToDb.id = req.body.id;
    objToDb.damage_type = damage
    createSql(objtoDb)
    })

    queries.createSql(objtoDb).then(damage => {
        //do things
    };
};

希望有人可以帮助初学者=)

【问题讨论】:

    标签: json node.js express post


    【解决方案1】:

    问题是您的damage_type 实际上是damage_type[],您需要检查您发送damage_type 的方式并删除多余的[]

    【讨论】:

    • 谢谢,我虽然可能是这样。那我一定是错误地创建了我的对象。但它通过了 json 验证器。需要到处玩
    • 不,不明白。在客户端硬编码对象后,我可以像 Obj.damage_type[0] 那样在 chrome 控制台中得到我的损害。但如果我将它作为 req 对象发送到我的路线,我不能。
    猜你喜欢
    • 2019-07-19
    • 1970-01-01
    • 1970-01-01
    • 2016-04-02
    • 1970-01-01
    • 2012-09-12
    • 2018-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多