node.js中的Snake_case或camelCase

时间:2014-02-01 20:44:25

标签: javascript node.js

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

  1. 客户端必须使用带有 snake_case 的API(请求正文中发送的JSON对象中的密钥为snake_case)。
  2. 数据库列名称也是 snake_case
  3. 问题是因为 javascript 标准/惯例正在使用我希望保留的 camelCase

    所以我看到有3个解决方案:

    1. 根据需要,将数据从snake(API)转换为camel(应用程序)到snake(数据库)。 这将为系统引入一些新层,并且所有这些层都比其他解决方案复杂。
    2. 在node.js app中使用snake_case。 但是不管我是否使用了蛇我所使用的所有其他依赖关系仍然会在骆驼中解决整个问题。
    3. 在node.js app中混合使用snake_case和camelCase。这是我想避免的事情:)
    4. 那你有什么建议?我最喜欢的是第一个解决方案,但如果你有其他一些未提及的聪明的想法,请随时告诉:)

      谢谢, 伊万

3 个答案:

答案 0 :(得分:5)

正如Occam's razor原则所说,最简单的解决方案是最好的解决方案。

如果一方面有客户要求,另一方面有node.js code style guides。我会采取最简单的解决方案来满足两者。外部API应该是蛇形的,在内部你可以使用驼峰的情况。如果你坚持一致性,你可以随处使用蛇盒,因为我认为客户的要求具有更高的优先级。

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

答案 1 :(得分:5)

  

问题是因为javascript标准/实践正在使用我想保留的camelCase。

没有这样的标准做法。这取决于风格。 Node.js本身使用驼峰盒,我们内部坚持使用蛇盒,因为它更具可读性。按你的喜好做。

但是如果你的API使用蛇盒,那么自己坚持使用蛇盒是非常好的理由。所以我建议坚持使用选项2。

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

答案 2 :(得分:4)

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

data['user_id'] = 1;

所以,从技术上讲,我没有违反任何样式规则:这些只是字符串,而不是标识符