我正在开发一个小型项目,我们正在运行一个基于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的。
答案 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'