npm 包 Skeemas 使用教程

在前端开发中,数据的类型和格式验证是非常关键的一环。在这个过程中,Skeemas 是一个非常好用且容易上手的工具,它可以帮助我们快速地定义数据规范并进行校验。

本文将为大家介绍如何使用 Skeemas 来进行前端数据验证。让我们开始吧!

Skeemas 简介

Skeemas 是一个用于数据验证和格式化的 npm 包。它可以帮助我们定义符合预期规范的数据结构,并检查传入的数据是否符合该规范。同时,它还可用于规范化不符合预期的数据,使其符合规范。

安装 Skeemas

我们可以使用 npm 来安装 Skeemas:

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

基本使用

下面我们来看一个简单的例子,它将定义一个数据规范,并使用 Skeemas 检查传入的数据是否符合该规范并进行处理:

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

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

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

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

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

在上面的例子中,我们定义了一个 userSchema 对象,其中包含了一个用户的名称和电子邮件属性。接着,我们创建了一个 userData 对象,其中包含了不符合定义的数据。

最后,我们使用 skeemas.validate() 方法将 userSchemauserData 传递进去并进行了校验。如果数据有效,则输出 User data is valid,否则输出 User data is invalid

数据类型

下面我们来详细介绍 Skeemas 中支持的数据类型:

  • string:字符串
  • number:数字
  • integer:整数
  • boolean:布尔值
  • object:对象
  • array:数组
  • null:空值
  • any:任意类型

属性和选项

除了基本类型之外,我们还可以在 Skeemas 中通过属性和选项来更严格地定义数据规范。

以下是 Skeemas 中支持的属性和选项:

title

用于定义数据的名称或描述。它不会影响数据的校验。

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

description

用于定义数据的详细描述。它不会影响数据的校验。

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

default

用于定义数据的默认值。

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

enum

用于定义数据的枚举值。

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

additionalProperties

用于定义对象类型的数据重的附加属性是否校验

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

maxPropertiesminProperties

用于定义对象类型数据的属性个数的范围。

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

patternProperties

用于定义对象类型数据的多个属性名字校验

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

required

用于定义数据的必需属性

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

format

用于定义数据的格式

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

minLengthmaxLength

用于定义字符串类型数据的长度范围。

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

minimummaximum

用于定义数字类型数据的取值范围。

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

nullable

用于定义数据是否可以为空。

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

dependencies

用于定义数据属性之间的依赖关系。

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

oneOfanyOf

用于定义数据满足多个规范中的其中之一或任意一个。

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

自定义插件

除了基本属性和选项之外,我们还可以使用自定义插件来扩展 Skeemas 的功能。

下面是一个自定义插件的示例:

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

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

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

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

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

在这个例子中,我们使用 skeemas.plugin() 方法来注册一个自定义插件。该插件定义了一个 foo() 方法,我们可以在校验结果对象上调用它。

总结

在本文中,我们学习了如何在前端开发中使用 Skeemas 来进行数据验证和格式化。我们首先介绍了 Skeemas 的基本功能和安装方法,然后详细地讲解了其支持的数据类型、属性和选项,以及自定义插件的方法和使用。

Skeemas 不仅功能强大,而且非常易于上手,希望能给广大前端开发人员带来帮助。

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


猜你喜欢

  • npm 包 verb-log 使用教程

    简介 verb-log 是一个用于记录版本更新日志的 npm 包。在前端项目开发中,通常需要记录每个版本的更新内容以便后续开发者进行参考。verb-log 提供了一个简便的方式来记录版本更新日志。

    4 年前
  • npm 包 stupid-replace 使用教程

    随着前端开发的不断发展,我们对于代码的可读性和可维护性的要求也越来越高,因此我们需要使用一些工具来简化开发流程。npm 包是前端开发中常用的工具之一,其中一个非常常见的 npm 包就是 stupid-...

    4 年前
  • npm 包 @arkecosystem/core-logger 使用教程

    什么是 @arkecosystem/core-logger? @arkecosystem/core-logger 是一款 Node.js 的 npm 包,用于将日志记录到指定的输出位置。

    4 年前
  • npm 包 rsautl 使用教程

    前言 在 Web 应用程序中,我们通常需要进行数据加密和解密操作。RSA 算法是一个公开密钥加密算法,非常适合在 Web 应用程序中使用。npm 包 rsautl 提供了一套方便易用的 RSA 加密/...

    4 年前
  • npm 包 udc 使用教程

    什么是 udc? udc 是一个用于处理时间和日期的 npm 包,可以轻松地将时间戳转换为所需的格式,并提供了一系列工具函数来使日期和时间操作更加简单。 安装 udc 通过 npm 安装 udc: -...

    4 年前
  • npm 包 attempt 使用教程

    什么是 attempt attempt 是一个 npm 包,它是一个简单但强大的函数,可用于尝试在 JavaScript 中运行给定函数,如果抛出异常,则可以保留异常并返回默认值。

    4 年前
  • npm 包 attempt-promise 使用教程

    在前端开发中,有时候我们需要重试一个异步操作,例如网络请求失败后重新尝试,或者调用接口失败后重试。这种情况下,一个很方便的工具是 attempt-promise 这个 npm 包。

    4 年前
  • npm 包 flush-buffer 使用教程

    在前端开发中,我们常常需要使用到 buffer 缓存,但是当缓存的数据量过大时,我们要考虑对缓存进行刷新操作以防止出现卡顿等问题。 npm 包 flush-buffer 就是一个很好的解决方案,下文将...

    4 年前
  • npm 包 request-prom 使用教程

    Node.js 是一个非常流行的 JavaScript 运行时环境。在 Node.js 中使用 request 库来发起 HTTP 请求是非常常见的。不过,request 库并不支持 Promises...

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

    在 Web 开发中,前端工程师需要使用各种插件和库来提升开发效率和 Web 应用的功能。npm 是 JavaScript 生态中最大的包管理器,其中包含了海量的第三方库和插件,为前端开发者提供了丰富的...

    4 年前
  • npm 包 azure-iot-common 使用教程

    在前端开发过程中,有很多 JavaScript 库和框架可以使用来实现各种功能,而 azure-iot-common 就是其中一个用于 Azure IoT 中心通信的 npm 包。

    4 年前
  • npm 包 azure-iot-http-base 使用教程

    前言 在使用 Azure IoT Hub 进行物联网设备开发时,HTTP 协议被广泛使用。azure-iot-http-base 是一个 Node.js 模块,它提供了适用于 Azure IoT Hu...

    4 年前
  • npm 包 @azure/abort-controller 使用教程

    简介 在前端开发中,有时我们需要在请求过程中终止请求操作,这时候,@azure/abort-controller 就是一个十分有用的 npm 包,它提供了一种取消异步操作的方法。

    4 年前
  • npm包node-crontab使用教程

    介绍 随着互联网的不断发展,定时器任务已经成为了很多网站和应用的必备功能,而 node-crontab npm包就是为了解决这个问题而生的。node-crontab 是一个用于创建和管理定时任务的工具...

    4 年前
  • npm 包 azure-iot-amqp-base 使用教程

    前言 在前端开发过程中,有时需要使用到 Azure IoT 设备接入功能,使用 npm 包 azure-iot-amqp-base 可以帮助我们更快捷地实现这一功能。

    4 年前
  • npm 包 azure-iothub 使用教程

    Azure IoTHub 是微软提供的一款可实现物联网场景下设备和云端通信的服务。npm 包 azure-iothub 提供了一组 Node.js API,使得开发者可以在 Node.js 环境下与 ...

    4 年前
  • npm 包 umi-lint 使用教程

    前端开发面临的一个问题就是代码质量的保证。为了解决这个问题,要使用代码审查工具来发现潜在的问题,如语法错误、潜在的代码bug以及其他不安全的代码实践。在这篇文章中,我们将介绍一个名为 umi-lint...

    4 年前
  • npm 包 escape-carriage 使用教程

    简介 在前端开发中,常常会遇到需要对文本进行处理的情况,其中就包括转义一些字符,比如将换行符转义为 \n,将制表符转义为 \t 等等。而 escape-carriage 就是一款能够对车符(Carri...

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

    如果你是一名前端开发者,那么你一定离不开 npm。npm 上有大量的前端库和包可供使用,其中包括了 @types/css-modules。这个 npm 包可以让你在 TypeScript 项目中使用 ...

    4 年前
  • 前端技术文章 - npm 包 umi-plugin-types 使用教程

    什么是 umi-plugin-types? umi-plugin-types 是一个用于 TypeScript 类型检查的 umi 插件。umi 是一个基于 react 的前端框架,umi-plugi...

    4 年前

相关推荐

    暂无文章