在nodejs中使用mysql的命名约定建议[保持]

问题描述 投票:-1回答:1

请给我您的指导。

我正在使用带有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
}

非常感谢您//

mysql node.js api naming-conventions backend
1个回答
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"
    }
]
© www.soinside.com 2019 - 2024. All rights reserved.