Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript node.js中的Snake_case或camelCase_Javascript_Node.js - Fatal编程技术网

Javascript node.js中的Snake_case或camelCase

Javascript node.js中的Snake_case或camelCase,javascript,node.js,Javascript,Node.js,因此,我有一个node.js应用程序,它向客户端公开一些API,并连接到一些SQL数据库。 首先让我们介绍一些前提: 客户端必须将API与snake_case一起使用(请求体中发送的JSON对象中的键在snake_case中) 数据库列名也是大小写的 问题是因为javascript标准/实践正在使用camelCase,我想保留它 正如我所见,有3种解决方案: 根据需要动态地将数据从snake(API)转换为camel(应用程序)再转换为snake(数据库)。 这将为系统引入一些新的层,所有这些都

因此,我有一个node.js应用程序,它向客户端公开一些API,并连接到一些SQL数据库。 首先让我们介绍一些前提:

  • 客户端必须将API与snake_case一起使用(请求体中发送的JSON对象中的键在snake_case中)
  • 数据库列名也是大小写的
  • 问题是因为javascript标准/实践正在使用camelCase,我想保留它

    正如我所见,有3种解决方案:

  • 根据需要动态地将数据从snake(API)转换为camel(应用程序)再转换为snake(数据库)。 这将为系统引入一些新的层,所有这些都比其他解决方案稍微复杂一些
  • 在node.js应用程序中使用snake_case。 但无论我是否使用snake,我正在使用的所有其他依赖项都将使用camel,这并不能解决整个问题
  • 在node.js应用程序中混合snake_案例和camelCase案例。这是我想要避免的:)
  • 那你有什么建议?我最喜欢的是first solutions,但如果您有其他未在此处提及的聪明想法,请随时告知:)

    谢谢, 伊万

    正如原则所说,最简单的解决方案是最好的

    如果你一方面有客户的要求,另一方面也有客户的要求。我会采取最简单的解决方案,同时满足两者的要求。外部API应该是snake-case,内部可以使用camel-case。如果您坚持一致性,您可以在任何地方使用snake case,因为我假设客户的需求具有更高的优先级


    我真的会避免使用任何额外的层来转换案例,因为它会给最终解决方案带来额外的复杂性,可能会有额外的错误,而且将来还需要额外的维护。

    就我个人而言,当我必须在javascript中处理snake案例时,我只使用方括号:

    data['user_id'] = 1;
    
    所以,从技术上讲,我没有违反任何样式规则:这些只是字符串,不是标识符

    问题是因为javascript标准/实践使用的是camelCase,我想保留它

    没有这样的标准做法。这取决于一种风格。js本身使用camel-case,我们在内部使用snake-case,因为它更具可读性。随你的便

    但是,如果您的API使用snake-case,那么您自己就有理由坚持使用snake-case。所以我建议坚持选择2


    选项1不可能是imho,因为在不同的样式中使用相同的标识符容易出错。选项3是可以接受的。

    Npm是你的朋友:检查和模块。显然。至少,对于me.donut来说,这项研究使用了受过蛇案训练的程序员作为研究对象。所以他们认为蛇案“更容易阅读”的结论是有缺陷的。我想看一个关于camelCase培训对象的比较研究。