Express.js响应自动将snake_case密钥转换为camelCase

时间:2017-09-18 08:02:09

标签: javascript node.js express

我正在开发一个小型项目,我们正在运行一个基于Express.js的节点应用程序,它发送一个包含snake_case格式密钥的json响应。我们有另一个节点应用程序使用此服务,但响应对象键在此处以camelCase格式访问。我想知道在后台发生了什么使这项工作。

这是REST API中的代码

app.get('/api/customer/:id', (req, res) => {
    const data = {
        "arr": [{
             "my_key": "609968029"
        }]
    }
    res.send(data);
});

这是在其他节点应用程序中使用它的方式

getData = (id) => {
  const options = {
    url: `api/customer/${id}`
  };

  return httpClient.get(options)
    .then(data => {
      const arr = data.arr.map(arrEntry => {
        return {
          myKey: arrEntry.myKey
        };
      });

      return {
        arr
      };
    });
};

这里myKey正确地拥有来自REST API的数据,但是我不确定my_key是如何转换为myKey的。

2 个答案:

答案 0 :(得分:1)

原来我们已经使用humps库来解决从keys snake-case到camelCase的响应对象。

我在lib调用中找到了这段代码

const humps = require('humps');
...
axios(optionsObj)
  .then(response => {
    resolve(humps.camelizeKeys(response.data));
  })
  .catch(err => {
    reject(err);
  });

答案 1 :(得分:0)

lodash可以做到这一点

_.camelCase('Foo Bar');
// => 'fooBar'