npm 包 `required-keys` 使用教程

面试官:小伙子,你的代码为什么这么丝滑?

在前端开发中,我们经常需要对对象进行校验,判断对象是否符合特定的要求。这个过程中,我们需要一个方便易用、高效可靠的工具来简化操作,这就是 required-keys

required-keys 是一个 npm 包,它提供了一种快速而又方便的方法来验证对象是否拥有必需的键。它可以用来限制 API 调用的输入参数,表单输入数据的提交,甚至可以用来验证传入的配置参数是否正确。

基本使用方法

安装

required-keys 的安装非常方便,执行以下命令即可安装:

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

引入

在代码中引入 required-keys

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

执行检查

使用方法非常简单。让我们假设我们有一个对象,名为 userData,它包含了用户的一些基本信息。

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

在这个例子中,我们希望 userData 对象包含 nameageemail 这三个键。如果不存在这些键中的任何一个,我们需要给出相应的错误信息。

下面是检查的代码:

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

如果 userData 中不包含任何一个指定的键,required-keys 会抛出一个错误并中止程序,如下所示:

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

复合键

我们也可以使用复合键来检查对象。一个复合键是一个由多个键组成的键组合。在一个对象中检查复合键时,它会检查所有的键是否都存在。

让我们假设我们现在有一个更加复杂的对象,名为 userObject,它包含了用户的个人信息和地址信息,如下所示:

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

在这个例子中,我们希望 userObj 对象包含 personal.namepersonal.ageaddress.streetaddress.cityaddress.stateaddress.zip 这六个键。如果不存在这些键中的任何一个,我们需要给出相应的错误信息。

下面是检查的代码:

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

如果 userObj 中不包含任何一个指定的键,required-keys 会抛出一个错误并中止程序,如下所示:

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

高级使用方法

允许选填键

有时候,我们希望对象中的某些键是可选的。在这种情况下,我们可以为选填键创建一个可以选填的数组。

让我们假设我们有一个对象,名为 formData,它包含了用户提交的表单信息。

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

在这个例子中,nameageemail 是必填项,而 phone 是可选项。

下面是检查的代码:

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

如果 formData 中不包含任何一个指定的键,required-keys 会抛出一个错误并中止程序,如下所示:

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

如果我们添加 ['phone'],那么 phone 将变成可选键:

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

如果现在我们给 formData 对象添加一个 phone 键,那么将不会抛出任何错误。但如果 formData 对象中依然存在 nameageemail 之一或多个键不存在,错误将继续抛出。

自定义错误消息

我们可以通过向 requiredKeys 函数的第四个参数中添加错误消息来自定义错误消息。这个错误消息将会替代默认错误消息。

让我们以下面的对象为例:

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

我们可以向 requiredKeys 函数的第四个参数中添加任意错误消息,如下所示:

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

errorObject 不包含 name 时,requiredKeys 会抛出自定义错误消息:

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

使用示例

现在,我们来使用一个完整的示例来展示 required-keys 的功能。

首先,让我们看一下一些模拟数据,这些数据表示了我们从某个 API 中接收到的数据结构。

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

接下来,我们要使用 required-keys 验证 apiData 对象是否包含所有必需的键。

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

这行代码将会验证所有必需的键是否存在。在这个例子中,user.address.secondLine 是可选键。如果存在错误,required-keys 将会抛出下面的错误:

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

我们可以使用可选键来检查 user.address.secondLine 是否存在:

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

如果 apiData 包含所有必需的键,则代码将会正常运行;否则,将会抛出错误。

总结

required-keys 是一个非常有用的 npm 包,它能够简化对象校验的操作。这个工具可以用来限制 API 调用的输入参数、表单输入数据的提交、甚至可以用来验证传入的配置参数是否正确。在使用 required-keys 时,我们需要传入需要校验的对象,以及包含必需键的数组以及可选键(如果有)。校验失败时,required-keys 会抛出一个错误,以便我们快速地定位问题并检查代码。

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


猜你喜欢

  • npm 包 dat-daemon 使用教程

    简介 npm 是 node.js 包管理工具,其安装的各种包覆盖了 node.js 开发领域涉及的各个方面,包括浏览器端的前端开发。在这篇文章中,我们将介绍一个基于 npm 的 dat-daemon ...

    5 年前
  • npm 包 @dat-daemon/config 使用教程

    简介 @dat-daemon/config 是一个提供配置管理的npm包,可以帮助前端开发人员快速对应用、服务等进行配置管理。本篇文章主要介绍如何使用 @dat-daemon/config 以及相关使...

    5 年前
  • npm 包 cabal-cli 使用教程

    介绍 cabal-cli 是一款基于命令行的工具,提供了一套解决前端工程化问题的方案。它集成了项目构建、打包、测试、发布等多个流程,同时提供了插件和依赖管理功能,方便定制和扩展。

    5 年前
  • npm 包 cabal 使用教程

    介绍 Cabal 是一个基于 npm 的包管理器,专门针对前端 Web 开发中的配置和构建流程。它的目标是使得开发者可以快速构建可维护的前端项目。Cabal 包含了许多有用的功能,比如: 根据配置项...

    5 年前
  • npm 包 bkr 使用教程

    前言 在前端开发过程中,我们经常需要进行时间格式的转换操作。虽然 JavaScript 中有很多自带的方法,但是有时候我们需要更加灵活的设置时间格式、计算时间差等操作。

    5 年前
  • npm 包 ara-reward-dcdn 使用教程

    近年来,区块链技术在全球范围内迅速普及,越来越多的团队开始使用区块链技术开发应用程序。而在这个过程中,开发者们也需要使用到大量的工具和资源。在这些工具和资源中,npm 包 ara-reward-dcd...

    5 年前
  • npm 包 ara-identity-archiver 使用教程

    介绍 ara-identity-archiver 是一个基于 Node.js 的 npm 包,用于将身份验证令牌和密钥转换为加密的 JSON 文件,以便在需要时恢复身份。

    5 年前
  • npm 包 ara-filesystem 使用教程

    Node.js 是一个强大的 JavaScript 运行时环境,广泛应用于服务器端开发、命令行工具开发等领域。在 Node.js 生态系统中,npm 作为默认的包管理工具之一,为 Node.js 开发...

    5 年前
  • npm 包 @sammacbeth/dat-node 使用教程

    简介 @sammacbeth/dat-node 是一个基于 Dat 协议的数据传输库,它可以用于构建去中心化的 Web 应用,将用户数据储存在 P2P 网络上。@sammacbeth/dat-node...

    5 年前
  • npm 包 @garbados/dat-boi 使用教程

    什么是 @garbados/dat-boi? @garbados/dat-boi 是一个 npm 包,可以用于在前端项目中实现数据存储和同步。它采用了基于 ipfs 的分布式存储技术,支持多端同步、加...

    5 年前
  • npm 包 dat-ignore 使用教程

    简介 在 Node.js 环境下,经常需要对某些文件或者目录进行忽略,以避免对操作系统或代码库造成影响。在这个过程中,npm 包 dat-ignore 发挥了不可替代的作用。

    5 年前
  • npm 包 corestore 使用教程

    什么是 corestore? corestore 是一个基于 Hypercore 和 Hyperdrive 的 npm 包。它提供了一种创建和管理多个 Hypercores 和 Hyperdrives...

    5 年前
  • npm 包 @avro/types 使用教程

    什么是 Avro Apache Avro 是一种数据序列化系统,可用于跨语言和平台的数据交换。 Avro 提供了一种定义数据结构的方式,并且支持自描述。这意味着可以使用 Avro 来在不同的编程语言之...

    5 年前
  • npm 包 kappa-view-level 使用教程

    前言 Kappa-view-level 是一款适用于基于级别存储的 Kappa 架构的视图层,它是基于 kappa-view 和 level 实现的。本文将介绍 kappa-view-level 的使...

    5 年前
  • npm 包 kappa-core 使用教程

    随着前端技术的不断发展,npm 包成为了前端开发中必不可少的一部分。其中,kappa-core 是一款非常实用的 npm 包,可以帮助前端开发人员快速构建一个拥有核心功能的 Web 应用程序。

    5 年前
  • npm 包 charwise 使用教程

    在前端开发中,我们经常需要对数据进行排序、搜索、筛选等操作。而在这些操作中,字符串比较是一个非常基础的需求。在 JavaScript 中,我们可以使用内置的 String.prototype.loca...

    5 年前
  • npm 包 @jimpick/dat-log 使用教程

    简介 @jimpick/dat-log 是一个用于浏览 DAT 协议数据的 Web 应用程序。它通过连接到一个 dat-node peer,读取内容并使用 React 渲染到页面上。

    5 年前
  • npm 包 fs.promises 使用教程

    在前端开发中,我们经常需要操作文件,例如读取、写入、删除等等。Node.js 提供了内置的 fs 模块让我们可以轻松地完成这些操作。然而,这个模块的 API 是基于回调函数的,使用起来略显麻烦。

    5 年前
  • npm 包 discovery-swarm-web 使用教程

    前言 本文将介绍如何使用 npm 包 discovery-swarm-web 实现浏览器之间的 p2p 连接,同时深入探讨它的工作原理和学习价值。如果你是前端开发者且对浏览器端的 p2p 技术感兴趣,...

    5 年前
  • npm 包 beaker-error-constants 使用教程

    简介 beaker-error-constants 是一个 npm 包,它提供了一组常用的错误常量,可以在前端应用程序中方便地使用,防止在代码中出现不必要的硬编码字符串。

    5 年前

相关推荐

    暂无文章