【问题标题】:How can I alter response body?如何更改响应正文?
【发布时间】:2021-06-21 07:18:55
【问题描述】:

这是我将多个属性存储到数据库中的场景。现在,当我获取响应时,我不想要已经存储在 Db 中的确切属性名称。例如,下面是我的代码。在这里,我将字段存储为“ca_xyz”。现在在获取响应时,我只想要“xyz”作为字段名。谁能帮帮我?

const addAddress = async (req, res, next) => {
    try{
        var custid = req.params.id;
         const data = {
             ca_email: req.body.email,
             ca_mobile: req.body.mobile,
             ca_address1: req.body.address1,
             ca_address2: req.body.address2,
             ca_zone_id: req.body.zone_d,
             ca_city: req.body.city,
             ca_local: req.body.local,
             ca_pincode: req.body.pincode,
         }
         let results = await Address.create({data});
         res.send({
            status:'success',
            message:`Successfully added address `
         })
    }
    catch(error){
        console.log(error)
        res.send({
            status:'failed',
            message:"An error occurred"
        })

    }
}

实际上,这就是正在发生的事情。它应该在 dataValues 内循环,但在这里它正在获取“customer_group”对象。

【问题讨论】:

    标签: javascript node.js express response


    【解决方案1】:

    类型安全的方法是手动编写,快速的方法如下,循环遍历对象的条目并删除每个键的前缀。

    const data = {
      ca_email: "req.body.email",
      ca_mobile: "req.body.mobile",
      ca_address1: "req.body.address1",
      ca_address2: "req.body.address2",
      ca_zone_id: "req.body.zone_d",
      ca_city: "req.body.city",
      ca_local: "req.body.local",
      ca_pincode: "req.body.pincode",
    }
    
    let newData = {};
    
    for (const [key, value] of Object.entries(data)) {
      newData[key.substr("ca_".length)] = value;
    }
    
    console.log(newData)

    【讨论】:

    • 嗨,我试过了,但没有得到想要的响应
    • 请问?这正是您要求的逻辑。怎么了?
    • 即使我觉得这个逻辑是正确的,但它没有在键值对内循环。我正在添加一个快照以使其清楚。
    • 这正是您所要求的,输出是您具有不同键的对象。然后,您可以保存它。除非您更清楚地解释您的真正要求,否则我无能为力。
    • 现在,你能告诉我吗?我添加了一个快照
    猜你喜欢
    • 2016-06-16
    • 2014-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多