npm 包 bookshelf-joi 使用教程

阅读时长 6 分钟读完

什么是 bookshelf-joi

bookshelf-joi 是一个基于 bookshelf ORM 内核和 Joi 验证库封装的 npm 包。它为前端开发者提供了一种简单易用的方式来对数据库操作进行数据验证和约束。

安装和使用

安装

你可以通过 NPM 安装该包。

简单使用

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

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

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

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

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

API

bookshelfJoi(Model)

它返回的是一个包含 bookshelf-joi 中 Model 所有 API 的对象。

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

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

Model.joi

该属性为对象,其中包含两个属性:

Model.joi.create

该属性包含 Joi object ,表示在进行创建数据操作时所要求的数据结构。

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

Model.joi.update

该属性与 Model.joi.create 相似,但包含在更新时所要求的数据结构。

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

Model.create(data, options)

该方法为对象方法,用于创建符合 Model.joi.create 所定义的数据结构的数据。

  • data 必须符合 Model.joi.create 所定义的数据结构。
  • options 非必须,用于传入其他参数,如 { transacting: t }
-- -------------------- ---- -------
----- -------- - -
  ----- ----- -----
  ------ -------------------
  --------- --------
-

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

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

Model.update(data, options)

该方法为对象方法,用于更新符合 Model.joi.update 所定义的数据结构的数据。

  • data 必须符合 Model.joi.update 所定义的数据结构。
  • options 非必须,用于传入其他参数,如 { transacting: t }
-- -------------------- ---- -------
----- -------- - -
  --------- --------
-

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

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

Model.validate(data, nodb)

该方法为对象方法,用于进行数据验证。

  • data 必须为对象。
  • nodb 非必须,类型为布尔值。如果为 true,则不执行数据库操作。
-- -------------------- ---- -------
----- -------- - -
  ----- ----- -----
  ------ --------------
-

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

注意:当执行数据库操作时,不需调用该函数, bookshelf-joi 在进行数据库操作前自动验证。

结论

通过以上介绍,我们发现 bookshelf-joi 极大地方便了我们的数据操作,使得我们可以在不牺牲代码质量和运行效率的情况下,减少数据操作所带来的错误和漏洞。使用 bookshelf-joi 可以提高代码可读性,降低代码维护成本,是一个非常值得使用的 npm 包。

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

纠错
反馈