为什么在JS中使用Camel Case而在DB中使用Snake Case ?
Why use Camel Case for JS and Snake Case for your DB?
我被告知在我的DB中使用蛇形案例,而不是骆驼案例。JSON API要求在单词之间使用破折号表示对象键。Javascript,大家都用camelCase
如果我有一个RAILS服务器从SQL数据库获取数据,将其作为json发送并在javascript中使用,我真的需要在这些符号之间转换吗?
为什么不在所有地方都使用蛇案呢?
对于JavaScript,如果您想使用驼峰大小写,则取决于您(或项目的指导方针)。但是因为几乎每个主要的库和核心API都使用驼峰用例,所以这样做是一个好主意,因为这样你就不需要考虑你是需要使用一个还是另一个了。
对于DBMS,这取决于操作系统和DBMS,因为使用混合字母时可能会遇到技术问题。例如,如果你有一个运行在windows系统上的MySQL数据库,那么MySQL将不会关心表名的大小写,因为文件系统是不区分大小写的。因此,Windows上的默认MySQL配置将自动将所有表名转换为小写。只要你的DBMS还在windows机器上,这就不是问题,但是一旦你决定切换到Linux基础服务器,那么将数据从windows迁移到Linux机器上就会遇到巨大的问题。
为了不依赖于这些问题,通常在DBMS中只使用小写字母,不管DBMS是否会有问题使用大写字母。使用小写字母肯定没有问题,而使用大写字母,如果可能有问题,你需要做调查。
您真的不需要按照标准来转换它。遵循命名约定是为了让一组开发人员在同一个应用程序上工作。
遵循组织定义的命名约定是一种最佳实践,以便开发人员更好地理解代码。
您可以使用这个库在两个case-converter之间进行转换它将snake_case转换为camelCase,反之亦然
const caseConverter = require('case-converter')
const snakeCase = {
an_object: {
nested_string: 'nested content',
nested_array: [{ an_object: 'something' }]
},
an_array: [
{ zero_index: 0 },
{ one_index: 1 }
]
}
const camelCase = caseConverter.toCamelCase(snakeCase);
console.log(camelCase)
/*
{
anObject: {
nestedString: 'nested content',
nestedArray: [{ anObject: 'something' }]
},
anArray: [
{ zeroIndex: 0 },
{ oneIndex: 1 }
]
}
*/
我认为我们经历的主要痛苦是我们试图遵循语言社区中建立的约定,但是当JSON从一种语言序列化然后解析为另一种语言的映射时,当变量或对象键现在不遵循相同的约定时,会有一些烦恼。这就是为什么我可能会在前端停止遵循骆驼式惯例,而回到蛇式惯例的原因之一,因为如果在整个项目的代码库中只有一种风格,对我来说认知开销更少。当然,这是一个个人项目,我保证在工作中会遇到很多阻力。
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 加载db.json时出错
- 如何使用javascript var引用Mongo DB集合's字段
- Clear Case.如何在多行上拆分很长的javascript
- 在Knockout JS中搜索从DB加载数据的项目
- 如何将变量声明为全局变量?用case foreach?Javascript
- JS驱动的常见问题页面的推荐DB解决方案
- 为什么我的Mongoose DB模式之一可能是“;强制转换为未定义的“;当它的实例被放置在第二个模式中时
- fetch data from db using javascript & php
- 如何根据DB中的值迭代选择并设置多个选项
- 我可以用javascript中的switch或case语句重构if-else吗
- mongodb中db.collection.find()的返回类型是什么
- AJAX和phpJSON连接DB和retern值
- 为什么有单独的蒙戈.服务器和蒙戈.Db在Mongodb本地驱动程序中
- AJAX使用php和javascript连接到db
- 等值线缺省值在插入 db 之前不设置该值
- PhoneGapBuild - 下载 sqlite db 并连接到它
- 调用 db.system.js $where 中的函数
- Uncatch TypeError:DB.find 不是 React with Meteor 1.3 中的函数
- 为什么在JS中使用Camel Case而在DB中使用Snake Case ?