在 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"
    }
]