代码之家  ›  专栏  ›  技术社区  ›  Niv G.

前端变量名与后端变量名

  •  0
  • Niv G.  · 技术社区  · 1 年前

    我正在为我的后端创建一个使用supabase的react应用程序。当我在制作表格时,苏巴色说这是 recomended to use lowercase and use an underscore to separate words e.g. column_name 。但在前端,我会将其用作 columnName ,这是否意味着我每次从中提取时都必须重命名它 column_name columnName 例如,每次我插入时都是相反的方式?

    例如 here 获取数据是在我获取数据时进行的吗?我需要像上面所说的那样重命名它吗?还是有更好、更容易的方法来做到这一点,然后每次都重命名它?

    1 回复  |  直到 1 年前
        1
  •  0
  •   machineghost    1 年前

    在像Javascript这样的区分大小写的语言中,使用大小写的差异来分隔单词是一种常见的惯例,也就是“camelCase”(“camelCase”)。SQL等不区分大小写的语言(我猜无论supabase使用什么)都不能依靠大小写来区分单词,所以它们依赖于“snake Case”(“snake_Case”)。

    作为一名开发人员,您有两种选择来协调这一点。首先,您可以简单地忽略约定,并(例如)在数据库中使用camel-case。天不会塌下来,但有一天你可能会犯一个与案件有关的严重错误。

    第二种选择是使用Lodash这样的函数 camelCase / snakeCase 根据需要转换案例(或编写自己的案例)。据推测,你的应用程序只有少数“与数据库对话”功能,而这些功能应该是你唯一需要转换案例的地方,所以不应该太麻烦。

    为了让您开始,这里有一个简单的函数,您可以使用(与Lodash的 camelCase )对对象中的所有键进行camel大小写,大概是在它们从snake大小写的数据库中返回之后。你可以很容易地做出类似的 snakeCase 版本:

    import { camelCase } from 'lodash-es';
    
    export const camelizeKeys = (original) => {
      const newObj = {};
      for (let key in original) {
        newObj[camelCase(key)] = original[key];
      }
      return newObj;
    };