在 nodejs 中使用 mysql 的命名约定建议
Naming convention recommendation for using mysql in nodejs
请多多指教
我在 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
}
非常感谢/\
对于 JSON 大小写没有固定的约定,但是大多数 API 倾向于对属性使用驼峰式命名,包括 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"
}
]
结果(驼峰式):
[
{
"title": "The Shawshank Redemption",
"dailyRentalRate": "€2.99"
},
{
"title": "Ferris Bueller's Day Off",
"dailyRentalRate": "€2.99"
}
]
请多多指教
我在 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
}
非常感谢/\
对于 JSON 大小写没有固定的约定,但是大多数 API 倾向于对属性使用驼峰式命名,包括 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"
}
]
结果(驼峰式):
[
{
"title": "The Shawshank Redemption",
"dailyRentalRate": "€2.99"
},
{
"title": "Ferris Bueller's Day Off",
"dailyRentalRate": "€2.99"
}
]