npm 包 objection-table-name 使用教程

阅读时长 4 分钟读完

简介

有时候在使用 Objection.js ORM 进行数据模型操作的时候,我们需要手动指定表名,而 objection-table-name 就是一个解决这个问题的 npm 包。

objection-table-name 通过在模型文件中继承一个 Table 类实现指定表名的功能,这个 Table 类会通过重写 $table 属性来指定表名。

安装

我们可以通过 npm 来安装 objection-table-name:

使用

1. 定义模型

在定义模型之前,我们需要先安装 objection.js 这个依赖包:

然后可以定义一个 User 模型:

-- -------------------- ---- -------
----- - ----- - - ---------------------
----- ----- - ---------------------------------------

----- ---- ------- ----- -
  ------ --- ----------- -
    ------ -------
  -

  ------ --- ------------ -
    ------ -
      ----- ---------
      --------- ---------

      ----------- -
        --- - ----- --------- --
        ----- - ----- --------- ---------- -- ---------- --- --
      --
    --
  -
-

这里的 Table 是继承于 Objection 的 Model 类的,通过重写 $table 实现了指定表名的功能。

2. 使用模型

在使用这个模型进行操作的时候,我们可以看到 Objection.js 已经使用了我们指定的表名:

-- -------------------- ---- -------
----- ---- - -----------------
  ------- ----------
  ----------- - --------- ----------- --
---
----- - ----- - - ---------------------
----- ---- - -------------------------

-----------------

------ -- -- -
  ----- --------------------- ----- ------- ---
  ----------------- -----------------------
-----

这里的表名是 user

总结

通过使用 objection-table-name,我们可以非常方便地指定表名,提高代码的可读性和可维护性。

该项目的 GitHub 主页为:https://github.com/AceEddo/objection-table-name

示例代码

下面是一份使用 objection-table-name 的示例代码,展示了如何定义和使用一个指定表名的数据模型:

-- -------------------- ---- -------
-- --------------
----- - ----- - - ---------------------
----- ----- - ---------------------------------------

----- ---- ------- ----- -
  ------ --- ----------- -
    ------ -------
  -

  ------ --- ------------ -
    ------ -
      ----- ---------
      --------- ---------

      ----------- -
        --- - ----- --------- --
        ----- - ----- --------- ---------- -- ---------- --- --
      --
    --
  -
-

-------------- - -----

-- ------
----- ---- - -----------------
  ------- ----------
  ----------- - --------- ----------- --
---
----- - ----- - - ---------------------
----- ---- - -------------------------

-----------------

------ -- -- -
  ----- --------------------- ----- ------- ---
  ----------------- -----------------------
-----

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/objection:-the-table-name