简介
有时候在使用 Objection.js ORM 进行数据模型操作的时候,我们需要手动指定表名,而 objection-table-name 就是一个解决这个问题的 npm 包。
objection-table-name 通过在模型文件中继承一个 Table 类实现指定表名的功能,这个 Table 类会通过重写 $table
属性来指定表名。
安装
我们可以通过 npm 来安装 objection-table-name:
npm i objection-table-name
使用
1. 定义模型
在定义模型之前,我们需要先安装 objection.js 这个依赖包:
npm i objection
然后可以定义一个 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