npm 包 @xyluet/objection-table-name 使用教程

阅读时长 4 分钟读完

简介

@xyluet/objection-table-name 是一个基于 objection.js 的插件,它可以自动将查询中的表名转换为指定格式的表名,提供了极大的便利性,减少了手动修改表名的繁琐工作。

使用方法

安装

你可以通过 npm 安装该插件:

引入

在项目入口文件中,引用 @xyluet/objection-table-name

导出插件

@xyluet/objection-table-name 是一个插件而非直接使用的库,因此需要导出插件:

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

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

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

自定义表名格式

YourModel 类中,你可以通过实现 formatTableName 函数来自定义表名的格式:

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

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

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

在上面的例子中,我们将表名的首尾加上了 prefix__suffix,并将所有字符转换为小写。

使用插件

之后,你就可以像使用普通的 objection.js 模型一样使用你的模型了。例如,你可以进行一次查询:

该查询会输出:

示例代码

以下是一个在 Node.js 中使用 @xyluet/objection-table-name 的完整示例:

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

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

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

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

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

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

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

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

在以上示例中,我们使用了 Express 框架来创建一个 HTTP 服务,并在其中使用了我们的 YourModel 模型类进行查询,该模型使用了 @xyluet/objection-table-name 插件,将表名格式化为 prefix_your_table_suffix 的形式。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600671d530d0927023822b42

纠错
反馈