请给我您的指导。
我正在使用带有mysql数据库的节点(不使用orm)。
我对mysql使用snake_case命名约定。
我的问题是:
在节点中, 我应该使用snake_case还是使用camelCase?例如在models / movie.js:
snake_case:
return db.execute(SELECT title, daily_rental_rate FROM movies);
结果发送给客户端:
{
title: 'abc',
daily_rental_rate: 20
}
camel_case:
return db.execute(SELECT title, daily_rental_rate as dailyRentalRate FROM movies);
结果发送给客户端:
{
title: 'abc',
dailyRentalRate: 20
}
非常感谢/ \
答案 0 :(得分:0)
对于JSON大小写没有固定的约定,但是大多数API倾向于将camelCase用于属性,包括Google,请参见其样式指南here。
您还可以在JavaScript中映射对象属性,而不必在查询中手动进行。这使您可以相对灵活地使用外壳,如果以后要更改,甚至可以更改为kebab-case或snake_case。本示例使用lodash库转换对象大小写。
const _ = require("lodash");
function objectToCamelCase(obj) {
return _.mapKeys(obj, (v, k) => _.camelCase(k))
}
let rows = db.execute("SELECT title, daily_rental_rate FROM movies");
console.log("Result (snake_case): ", rows);
rows = rows.map(objectToCamelCase);
console.log("Result (camelCase):", rows);
结果可能如下所示:
结果(snake_case):
[
{
"title": "The Shawshank Redemption",
"daily_rental_rate": "€2.99"
},
{
"title": "Ferris Bueller's Day Off",
"daily_rental_rate": "€2.99"
}
]
结果(camelCase):
[
{
"title": "The Shawshank Redemption",
"dailyRentalRate": "€2.99"
},
{
"title": "Ferris Bueller's Day Off",
"dailyRentalRate": "€2.99"
}
]