【问题标题】:Naming convention recommendation for using mysql in nodejs [closed]在 nodejs 中使用 mysql 的命名约定建议 [关闭]
【发布时间】:2019-09-25 15:15:54
【问题描述】:

请给我你的指导。

我正在使用带有 mysql 数据库的节点(不使用 orm)。

我对mysql使用snake_case命名约定。

我的问题是:

在节点中, 我应该使用snake_case还是camelCase?

例如在模型/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】:

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

    结果(驼峰式):

    [
        {
            "title": "The Shawshank Redemption",
            "dailyRentalRate": "€2.99"
        },
        {
            "title": "Ferris Bueller's Day Off",
            "dailyRentalRate": "€2.99"
        }
    ]
    

    【讨论】:

    • 注明。非常感谢您的帮助和建议/\ :)
    • 很高兴能帮上忙!编码愉快!
    猜你喜欢
    • 2014-05-29
    • 1970-01-01
    • 2010-10-29
    • 1970-01-01
    • 1970-01-01
    • 2019-12-05
    • 1970-01-01
    • 2016-12-25
    • 2011-10-21
    相关资源
    最近更新 更多