Как я могу изменить тело ответа?

#javascript #node.js #express #response

Вопрос:

Это сценарий, в котором я сохраняю несколько атрибутов в базе данных. Теперь, когда я получаю ответ, мне не нужно точное имя атрибута, которое уже хранится в Бд. Например, ниже приведен мой код. Здесь я сохранил поля как «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"
        })

    }
}
 

На самом деле, именно это и происходит. Он должен зацикливаться внутри значений данных, но здесь он получает объект «customer_group».
введите описание изображения здесь

Ответ №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) 

Комментарии:

1. Хии, я пробовал это, но не получаю желаемого ответа

2. Прошу прощения? Это именно та логика, о которой вы просили. Что не так?

3. Даже я чувствовал, что эта логика верна, но она не зацикливается внутри пары ключ-значение.. Я добавляю снимок, чтобы все было ясно.

4. Это именно то, что вы просили, вывод-это ваш объект с разными ключами. Затем вы можете сохранить его. Я не могу сделать ничего другого, если вы не объясните более четко, о чем вы на самом деле просите.

5. Теперь ты можешь сказать? Я добавил снэпчот