npm 包 bookshelf-joi 使用教程

什么是 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


猜你喜欢

  • npm 包 kylethanasnpm 使用教程

    npm 是 Node.js 的包管理器,它允许您轻松地安装和管理第三方 Node.js 模块。kylethanasnpm 是一个非常有用的 npm 包,它提供了许多前端开发所需的功能和工具。

    3 年前
  • npm 包 moyu-egret-tools 使用教程

    前言 在 Egret 游戏开发中,开发者不可避免地需要使用到各种工具来协助完成开发工作。moyu-egret-tools 是一款基于 Egret 开发的 npm 包,它提供了一系列的 Egret 工具...

    3 年前
  • npm 包 node-paperclip-s3 的使用教程

    介绍 node-paperclip-s3 是一个基于 Node.js 平台的 npm 包,用于实现服务器上的文件上传和管理,支持对 Amazon S3 的访问。 本教程将会介绍该包的安装、配置及使用方...

    3 年前
  • npm 包 webpack-boilerplate-cli 使用教程

    背景 在前端开发中,Webpack 是一个非常重要的工具。它是一种模块化打包工具,可以将各种资源(HTML、CSS、JavaScript、图片等)打包成一个或多个静态资源文件,便于网页加载和部署。

    3 年前
  • npm 包 cloud-pages 使用教程

    介绍 cloud-pages 是一个用于快速构建静态网页的 npm 包。它提供了一个简单的命令行工具,帮助我们创建、部署和管理静态网站。使用 cloud-pages 可以快速将你的网站部署到云平台中,...

    3 年前
  • npm 包 moysklad-extension-positions-smart-update 使用教程

    在前端开发中,经常需要使用 npm 包来方便地进行开发工作。在这篇文章中,我们将介绍 moysklad-extension-positions-smart-update 这个作用于 moySklad ...

    3 年前
  • NPM 包 Passport-stack-exchange 使用教程

    什么是 Passport-stack-exchange Passport-stack-exchange 是一个 NPM 包,它实现了 Stack Exchange API v2.2 的授权和认证。

    3 年前
  • npm 包 React-able 使用教程

    React-able 是一个基于 React.js 的表格组件库,它提供了一系列丰富的功能和 API,让你能够快速在 React 应用中构建出漂亮、交互性强的表格。

    3 年前
  • npm包 redux-socketio 使用教程

    一、前言 在开发现代化的网络应用程序时,我们需要良好的 Socket.IO 实时通信架构。而此时,Node.js 的 npm 包管理工具中最为流行的一个类库就是 Redux。

    3 年前
  • npm 包 sentiment-turkish 使用教程

    在前端开发中,我们通常需要对文本进行分类、分析和情感分析,这些功能需要使用文本分析库,而 sentiment-turkish 就是这样一种库。它是一个 npm 包,专门用于情感分析,适用于土耳其语。

    3 年前
  • npm 包 react-facebook-next 使用教程

    在开发前端项目时,有许多可以提高效率的 npm 包。其中,react-facebook-next 可以帮助我们在 React 应用中更方便地使用 Facebook API。

    3 年前
  • npm 包 react-native-check-box-ga 使用教程

    在前端开发中,有很多常用的库和工具,其中一个比较常用的就是 npm 包。npm 包是 node.js 的包管理器,可以方便地查找、安装和使用 JavaScript 模块。

    3 年前
  • npm包typescript-batch-compiler使用教程

    介绍 typescript-batch-compiler是一个npm包和一个命令行工具,它可以将多个TypeScript文件编译成一个Javascript文件。 此工具处理依赖关系和出口,以便输出一个...

    3 年前
  • npm 包 gitbook-plugin-plantuml-svg 使用教程

    如果你正在写一些技术文档或者笔记,并需要在其中插入图表或流程图等,那么 PlantUML 和 GitBook 是两个非常好用的工具。而运用这两款工具,你还可以使用一个非常强大的 npm 包,叫做 gi...

    3 年前
  • IDB(IndexedDB) 数据库管理工具 idbi 使用教程

    IDB(IndexedDB)是一种低级别的API,用于在Web浏览器中存储大量的结构化数据。IDB使用NoSQL数据库存储数据,支持键值对存储和索引操作。虽然IndexedDB非常强大,但它的API复...

    3 年前
  • npm 包 xjch_wx 使用教程

    介绍 xjch_wx 是一个可以帮助前端开发者快速开发微信小程序的 npm 包。 该包提供了一系列小程序开发必需的功能和工具,包括 HTTP 请求封装、小程序配置文件生成、图片处理、加解密等。

    3 年前
  • npm 包 @kard/esfix 使用教程

    前言 前端开发中,经常会出现代码错误或者不合理的写法等问题,此时我们就需要用到一些工具来帮助我们解决这些问题。其中,@kard/esfix 就是一款非常好用的工具,能够帮助我们自动修复代码错误和优化代...

    3 年前
  • npm 包 jc-lession 使用教程

    在前端开发中,经常需要使用各种第三方库和插件。而 npm 是前端开发最常用的包管理工具之一。今天,我要介绍一款名为 jc-lession 的 npm 包,它能够帮助你更加高效地编写 JavaScrip...

    3 年前
  • npm 包 node-paperclip-file 使用教程

    前言 在前端开发领域,我们常常需要上传文件,如头像、图片等等。而 node-paperclip-file 包就是一款方便上传文件的 npm 包。 本文将介绍 node-paperclip-file 包...

    3 年前
  • npm 包 segmentx 使用教程

    segmentx 是一个能够帮助前端处理文本分词的工具,它为每个单词提供了一个标签,可以检测出其在文本中所处的位置,方便进行进一步的文本处理。本篇文章将为大家介绍如何使用 segmentx 进行文本分...

    3 年前

相关推荐

    暂无文章