NPM 包 joi-strict 使用教程

随着前端技术的不断发展,良好的数据校验成为我们工作中不可或缺的一部分。而这样的需求可以通过使用 joi-strict 这样的 NPM 包来实现。本篇文章将介绍如何使用 joi-strict 进行数据校验,并深入探究该包的特性和重要性。

什么是 joi-strict?

joi-strict 是一款基于 joi 进行开发的 NPM 包,它可以使数据校验更加严格、准确、安全和高效。与 joi 不同,joi-strict 的特性包括:

  • 对传入数据进行必要的类型转换,避免无意间将数值转为字符串等问题。
  • 遵循一些安全规则,例如对于空字符串不做数据校验,不允许过度授权等。
  • 如果遇到不合规的数据,将抛出相应的异常,以便开发人员及时处理,并且可以实时追踪到校验错误发生的时间和位置。

在数据校验方面,joi-strict 与 joi 的差异主要体现在两个方面:

  1. 对传入数据进行类型转换。

joi-strict 会先将传入数据强制转为统一形式,然后再进行校验。例如,对于数字 42,如果使用 joi 进行校验,则只能匹配 42 作为数字这种类型,但是 joi-strict 会将 42 转换为具体的 Number 类型,从而可以更加准确地实现数据校验。

  1. 进行更严格的校验

与 joi 相比,joi-strict 的数据校验更加严格。例如,对于空字符串,joi-strict 不会对其进行校验,而 joi 可能会将其识别为 null。

如何使用 joi-strict?

在使用 joi-strict 之前,需要先确保已经安装了相关的 NPM 包。可以通过以下命令进行安装:

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

安装完成后,我们可以引入 joi-strict 的校验机制,然后在需要进行数据校验的函数中调用该机制,例如下面这个例子:

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

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

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

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

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

在上述例子中,首先我们引入了 joi-strict 和 joi 两个 NPM 包,并定义了一个可以接受用户数据作为输入的函数 createUser,然后我们定义了一个校验规则 schema,该校验规则规定了用户对象应该包含哪些属性以及其对应的校验规则。

接下来,我们通过 joi.validate 方法来验证输入用户数据是否符合校验规则。注意,我们传入了三个参数:

  1. user:需要进行数据校验的用户对象;
  2. schema:定义了校验规则的对象;
  3. stripUnknown:表示是否检测未知属性。

在进行数据校验时,如果遇到错误,将会抛出一个错误对象,并提示出错的具体信息。

joi-strict 的其他特性

除了上述提到的校验特性之外,joi-strict 还有其他一些值得关注的特性。

允许自定义扩展

joi-strict 提供了类似 joi 的扩展机制,允许你通过 joi.extend() 方法来添加自定义的校验规则。

例如,你可以添加一个自定义规则,要求传入的字符串必须是全小写,如果出现大写字母,则立即抛出错误。示例代码如下:

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

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

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

增强错误消息

在默认情况下,joi-strict 会为所有校验不通过的值返回一个默认的错误消息。但是,我们可以通过自定义错误消息的方式来增强错误信息。例如:

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

在上述例子中,我们自定义了错误消息,当用户输入的 email 格式不正确时,会抛出一个提供更加详情的错误信息。

结论

joi-strict 是一款功能强大的 NPM 包,它可以帮助我们进行更加高效、准确和安全的数据校验。在使用之前,请确保已经全面了解其特性和使用方法。在实际开发工作中,通过合理使用 joi-strict,我们可以让我们的代码更加高效,减少错误并提高代码的可维护性。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/5f093817403f2923b035c022


猜你喜欢

  • npm 包 @gulp-sourcemaps/map-sources 使用教程

    简介 在前端开发中,使用 Gulp 自动化构建工具来处理任务是非常常见的。其中,@gulp-sourcemaps/map-sources 是一个非常有用的 npm 包,它可以用来调试压缩后的 Java...

    4 年前
  • npm 包 @znemz/js-common-editorconfig-clone 使用教程

    npm 包 @znemz/js-common-editorconfig-clone 使用教程 什么是 EditorConfig? EditorConfig 是一种协议,可使多个程序员共同协作在同一项目...

    4 年前
  • 使用 @znemz/js-common-eslint-config-mono-clone NPM 包

    在前端开发中,代码的规范和统一性是非常重要的。而 eslint 就是一个用来检查代码规范的工具。在使用 eslint 时,我们可以使用一些现成的配置,例如 @znemz/js-common-eslin...

    4 年前
  • npm 包 generator-eslint 使用教程

    作为前端开发人员,我们经常会遇到代码风格不一致的问题,尤其是在团队协作的时候。为了解决这个问题,我们可以使用 eslint 这个工具来对代码风格进行检查和规范。但是,在实际使用中,我们可能需要不同的 ...

    4 年前
  • npm 包 @znemz/eslint-plugin-nem 使用教程

    在前端开发中,代码规范化是非常重要的一环。它可以帮助开发人员避免写出不规范的代码,提高代码的可读性和可维护性。 eslint 是一个非常流行的代码规范工具,它可以帮助开发人员定义自己的代码规范,并对代...

    4 年前
  • npm 包 @znemz/js-common-eslint-config 使用教程

    背景 在前端开发中,代码规范是很重要的一环,而 ESLint 是一个长期以来广泛使用的代码规范和风格检查工具。但是用到 ESLint,配置也往往会带来不小的麻烦。为了解决这个问题,@znemz/js-...

    4 年前
  • npm 包 @znemz/js-common-eslint-config-react 使用教程

    随着现代前端技术的快速发展,前端项目变得越来越复杂,代码量庞大,开发体验和代码质量的要求越来越高。为了提高代码质量,我们需要使用一些工具来规范代码风格、检查代码错误等。

    4 年前
  • npm 包 @znemz/js-common-eslint-config-react-mono-clone 使用教程

    简介 随着前端技术的发展,JavaScript 成为了前端开发的重要一环。而 npm 是 JavaScript 生态系统中的重要组成部分之一,其为开发者们提供了方便快捷的包管理工具。

    4 年前
  • npm 包 @znemz/js-common-gulp-monorepo-typescript 使用教程

    前言 在前端开发中,使用自动化工具可以大大提高开发效率。而最常用的自动化工具之一就是 Gulp。而对于一个大型的项目,多人协作开发时,经常会发现需要拆分出多个子项目,通过 Monorepo 的方式进行...

    4 年前
  • npm 包 @znemz/js-common-prettierrc-clone 使用教程

    简介 在前端开发中,为了提高代码可维护性和可读性,我们经常需要使用代码格式化工具。而其中,Prettier 是一个非常受欢迎的工具,可以快速、准确地格式化代码。在使用 Prettier 的过程中,我们...

    4 年前
  • npm 包 @znemz/node-memwatch 使用教程

    简介 @znemz/node-memwatch 是一个基于 Node.js 的内存泄漏检测工具,可帮助开发人员在开发过程中实时监测应用的内存使用情况,定位内存泄漏问题并及时修复。

    4 年前
  • npm包 @znemz/js-common-debug-clone 使用教程

    简介 在前端开发中,经常会遇到需要对一些数据进行调试的情况,并且我们通常会使用 console 打印出这些数据来查看。然而,在实际开发过程中,由于数据结构复杂或者引用关系错综复杂,使用 console...

    4 年前
  • npm 包 @znemz/js-common-tsconfig-clone 使用教程

    在前端开发中,使用 TypeScript 已经成为了一种趋势,通过 type checking、自动补全等功能提升了项目的可维护性。虽然 TypeScript 带来了很多好处,但是在项目中需要管理好 ...

    4 年前
  • npm 包 @znemz/js-common-cpy-cli 使用教程

    概述 npm 是 Nodejs 的包管理器,允许用户共享和重复使用可重用的代码模块。使用 npm 可以轻松地安装、更新和卸载 JavaScript 包。其中,@znemz/js-common-cpy-...

    4 年前
  • npm 包 @znemz/js-common-jest-config-mono-package-clone 使用教程

    简介 @znemz/js-common-jest-config-mono-package-clone 是一款基于 Jest 的测试配置包,用于一站式的测试解决方案。

    4 年前
  • npm包 @znemz/react-extras-jest 使用教程

    在 React 的开发过程中我们经常需要使用到 Jest 测试框架。而 @znemz/react-extras-jest 这个 npm 包就提供了一些有用的 Jest 工具来简化我们在 React 组...

    4 年前
  • npm 包 self-signed 使用教程

    在前端项目开发中,我们常常需要使用 HTTPS 协议来保证数据的传输安全性。虽然我们可以通过自己的 CA 证书来进行签名,但这样比较麻烦,而且有时候并不需要那么高的安全级别。

    4 年前
  • npm 包 json-fixer 使用教程

    在前端开发过程中,我们经常需要操作 JSON 格式的数据。在这个过程中,我们经常会遇到一些 JSON 不符合规范或者格式混乱的问题。json-fixer 可以帮我们自动化地处理这类问题。

    4 年前
  • npm 包 @types/lodash.isplainobject 使用教程

    在前端开发中,我们经常会用到 lodash 这个 JavaScript 工具库,它提供了很多便捷的方法来操作和处理数据。而 @types/lodash.isplainobject 则是一个定义了 is...

    4 年前
  • npm 包 @types/lodash.unescape 使用教程

    在前端开发过程中,我们常常需要使用到一些方便的工具库。其中,lodash 是一个非常常用的、功能强大的工具库。lodash.unescape 是 lodash 提供的一个函数,用于将 HTML 实体转...

    4 年前

相关推荐

    暂无文章