npm 包 celebrate 使用教程

在现代 Web 应用中,表单验证是一个必不可少的部分。虽然在服务器上开展表单验证是可行的,但在客户端上实现表单验证会更加高效和易于使用,因为这样就可以在用户尝试提交表单之前告知他们错误。

Express 的 npm 包 celebrate 实现了一个高效的中间件,用于验证客户端提交的请求。它可以帮助开发者们实现客户端的验证,从而减少服务器请求以及最大限度地通过验证客户端数据来提高安全性。

在本篇文章中,我们将学习 npm 包 celebrate 的使用教程,以及如何在你的 Web 应用中使用该包。

安装 celebrate

你可以通过以下命令来安装 celebrate:

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

使用 celebrate

现在,我们假设您已经安装了 Express 应用,并且您具备了基本的 JavaScript 知识和一些 Express 框架的使用经验。

  1. 首先,导入 celebrate 模块:

    ----- - ---------- --- - - ---------------------
  2. 然后,你可以将一个或多个中间件添加到应用程序中的路由器:

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

    上面的代码示例中,我们使用 celebrate 中间件进行表单验证。我们定义了一个包含 username、password、email 以及 name 四个字段的表单,使用了不同的 Joi 校验方案进行校验。

    如果请求体(也就是表单)符合定义的 schema 规则,则通过校验,否则返回错误信息。

  3. 最后,你还需要在代码的其他部分定义错误处理机制:

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

校验方案

Joi API 提供了各种校验器,可以人性化地定义期望的输入的类型、格式以及数据。接下来,是几种常用的校验方案:

字符串

  • Joi.string() - 期望 input 是 string 类型。
  • Joi.string().alphanum() - 期望 input 是 alpha-numeric 的字符。
  • Joi.string().regex(/^[a-zA-Z0-9]{3,30}$/) - 期望 input 是一个字符串,而且字符串必须是一个长度在 3 到 30 个字符的 alpha-numeric 字符。

数字

  • Joi.number() - 期望 input 是 number 类型。
  • Joi.number().integer() - 期望 input 是 integer 类型。
  • Joi.number().min(20) - 期望 input 是一个大于等于 20 的数字。

对象

  • Joi.object() - 期望 input 是 object 类型。
  • Joi.object({username: Joi.string(), password: Joi.string()}) - 期望 input 是一个对象,其中至少包含 username 和 password 属性。

数组

  • Joi.array() - 期望 input 是 array 类型。
  • Joi.array().items(Joi.string()) - 期望 input 是一个数组,其中包含的每个元素都是字符串类型的。

示例代码

下面是一个完整的示例代码。它定义了一个简单的 Express 应用程序,用于演示如何使用 celebrate 进行表单验证:

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

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

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

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

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

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

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

在上面的示例代码中,我们使用 Joi 定义了一个包含 username、password、email 以及 name 四个字段的表单,然后使用 celebrate 中间件进行表单验证。如果请求体符合定义的 schema 规则,则通过校验,否则返回错误信息。

结论

在本文中,我们讲解了在 Express 应用程序中使用 celebrate npm 包实现表单验证的方法。通过使用 celebrate,我们可以在客户端对数据进行验证,从而减少服务器端的请求以及通过验证客户端数据来提高应用程序的安全性。

在实际开发中,表单验证是一个必要的步骤,因此使用 celebrate 库是一个很好的选择,可以帮助开发者们快速进行表单的验证,保证数据的安全。

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


猜你喜欢

  • npm包@microsoft/stream-collator使用教程

    在前端开发中,许多项目都需要处理数据的排序、筛选等任务。这些任务对于程序员来说都是比较繁琐而且容易出错的。Microsoft 公司提供了一个 npm 包:@microsoft/stream-colla...

    4 年前
  • npm 包 @microsoft/package-deps-hash 使用教程

    什么是 @microsoft/package-deps-hash @microsoft/package-deps-hash 是一个用于生成包依赖哈希值的 npm 包,它可以帮助前端开发者管理项目的依赖...

    4 年前
  • npm 包 @types/timsort 使用教程

    随着前端技术的不断发展,我们经常需要使用各种 npm 包来方便地实现我们的需求。@types/timsort 就是其中的一个 npm 包,用于实现数组的排序。在本文中,我们将详细介绍 @types/t...

    4 年前
  • npm 包 @types/jju 使用教程

    简介 @types/jju 是一个使用 TypeScript 编写的 JSON 语法解析器库。它能够将字符串解析为 JSON 对象,并支持 JSON5 和 JSONC (JSON with Comme...

    4 年前
  • npm 包 @microsoft/sp-build-node 使用教程

    前言 在进行前端开发过程中,我们难免会遇到需要使用一些 Node.js 开发的工具或者库的情况,其中有一个重要的工具是 @microsoft/sp-build-node。

    4 年前
  • npm 包 @rushstack/debug-certificate-manager 使用教程

    简介 @rushstack/debug-certificate-manager 是一个 Node.js 的 debug 管理工具。它可以帮助开发者管理和生成证书,以便使用 HTTPS 进行开发和调试。

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

    在前端开发中,代码编写规范是非常重要的。使用 eslint 工具可以有效地帮助我们保持代码风格的一致性。eslint-plugin-tsdoc 是一个针对 TypeScript 项目的扩展规则集,用于...

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

    前言 随着前端技术不断发展,代码质量的要求也越来越高,特别是在团队协作的场景中,为了方便不同开发者的协作,需要保证代码的规范和一致性。在前端开发中,使用 ESLint 是一个很好的选择。

    4 年前
  • npm 包 @microsoft/gulp-core-build-mocha 使用教程

    介绍 在前端工程化构建过程中,自动化测试是非常重要的环节。其中一个测试框架 Mocha,简单易用,但它还需要结合其他工具才能实现自动化测试。 @Microsoft/gulp-core-build-mo...

    4 年前
  • npm 包 @types/braces 使用教程

    @types/braces 是一个用于 TypeScript 的 npm 包,可以帮助开发者快速构建具有括号匹配功能的字符串模板。在前端开发中,我们经常需要对字符串进行拼接和处理,使用 @types/...

    4 年前
  • npm 包 @cirrusct/utils 使用教程

    前言 随着前端技术的不断发展,越来越多的工具、框架和库开始出现在我们的开发生态系统中,这些工具可以帮助我们更快速地完成开发工作,提高效率。其中,npm 包是前端开发中非常重要的一个环节。

    4 年前
  • npm 包 @cirrusct/error 使用教程

    在前端开发过程中,经常会遇到各种错误和异常情况。为了更好地处理这些情况,可以使用 @cirrusct/error 这个 npm 包。本文将详细介绍如何使用这个包来更好地处理错误和异常情况。

    4 年前
  • npm 包 @cirrusct/core-types 使用教程

    简介 在现代前端开发中,npm 包已经成为我们必不可少的工具,而 @cirrusct/core-types 就是一个非常优秀的 npm 包。它为 TypeScript 项目提供了一系列的 Typesc...

    4 年前
  • npm包rdme使用教程

    什么是npm npm是Node.js软件包管理器,它允许开发者从npm注册中心下载和安装开源JavaScript代码包。它也是管理项目依赖项和版本控制的一种方式。 rdme是什么 rdme是一种很有用...

    4 年前
  • npm 包 @types/insert-module-globals 使用教程

    在前端开发的过程中,我们经常会用到各种 npm 包来解决一些问题。其中,@types/insert-module-globals 这个包是一个用于 TypeScript 项目的 npm 包,可以帮助我...

    4 年前
  • npm 包 ts-map 使用教程

    简介 ts-map 是一款基于 TypeScript 编写的 Map 数据结构的包,提供了高效、类型安全的 map 操作。本文将介绍 ts-map 的安装和使用,以及一些常用的操作。

    4 年前
  • npm 包 @tradie/node-scripts 使用教程

    概述 随着现代 web 技术的不断发展,前端开发的工具也越来越多样化,需要用到的模块也越来越多。npm 是一个流行的包管理器,它为前端开发者提供了大量可重用的模块,方便了项目的快速开发和维护。

    4 年前
  • npm包for-own.macro使用教程

    在前端开发中,使用编译工具可以大大提高开发效率,而在编译过程中,转换工具往往需要进行一些复杂的操作。对于这一类的操作,我们可以使用babel插件来实现自定义的编译过程,但是开发过程中的性能问题可能会使...

    4 年前
  • npm包 @types/css-tree 使用教程

    什么是 @types/css-tree @types/css-tree 是一个 TypeScript 类型定义文件的 npm 包。它提供了对 css-tree 可用的类型定义,以便在 TypeScri...

    4 年前
  • npm 包 reasonably-typed 使用教程

    前言 在前端开发中,经常需要使用很多第三方的库和框架,在这些库和框架的使用过程中,类型检查是必不可少的一环。虽然现在的 JavaScript 有了一些静态类型检查工具,如 TypeScript,但在实...

    4 年前

相关推荐

    暂无文章