我被告知在我的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从一种语言序列化然后解析为另一种语言的映射时,当变量或对象键现在不遵循相同的约定时,会有一些烦恼。这就是为什么我可能会在前端停止遵循骆驼式惯例,而回到蛇式惯例的原因之一,因为如果在整个项目的代码库中只有一种风格,对我来说认知开销更少。当然,这是一个个人项目,我保证在工作中会遇到很多阻力。