npm 包 @saeris/graphql-scalars 使用教程

在 GraphQL 中,标量 (Scalar) 类型是指表示单一值的数据类型,比如字符串、整数、浮点数、布尔值等等。@saeris/graphql-scalars 是一个 npm 包,它封装了常用的标量类型,如 Email、URL、日期、时间等等,使用它可以方便地在 GraphQL 的 schema 中定义这些标量类型。本文将介绍如何使用 @saeris/graphql-scalars 包,并提供详细的使用教程及代码示例。

安装与导入

使用 npm 安装 @saeris/graphql-scalars:

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

在工程中引入 @saeris/graphql-scalars:

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

使用示例

在 GraphQL 的 schema 中使用 @saeris/graphql-scalars,可以定义例如下面这些标量类型:

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

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

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

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

在上面的例子中,我们使用了 @saeris/graphql-scalars 中定义好的五种标量类型:EmailAddress、URL、Date、DateTime、Time,可以看到使用起来非常方便。这些标量类型都有自己的格式验证规则,有助于我们在输入数据时保证数据的合法性。

除此之外,@saeris/graphql-scalars 还提供了更多的标量类型,例如 PhoneNumber、PostalCode、ISBN 等,有具体需求时可以查阅官方文档。

自定义标量类型

如果 @saeris/graphql-scalars 中提供的标量类型不能满足需求,我们还可以自定义一些标量类型。例如下面这个例子:

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

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

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

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

在上面的例子中,我们定义了一个 EmailAddress 标量类型,它在序列化、处理输入值和字面量时都会执行对应的操作,如果遇到不合法的值,则会抛出异常。在 schema 中使用这个标量类型就和使用 @saeris/graphql-scalars 中的标量类型一样。

小结与思考

使用 @saeris/graphql-scalars 包可以很方便地定义 GraphQL 中常用的标量类型,避免重复造轮子,并且这个包中的标量类型都有自己的格式校验规则,能够帮助我们在输入数据时保证数据的合法性。

在使用自定义标量类型时,我们需要根据具体的需求编写对应的序列化、处理输入值和字面量的代码,这加强了我们对标量类型的理解和掌握。同时,我们也需要更多地关注输入数据的合法性,减少不合法数据的出现。

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


猜你喜欢

  • npm 包 @reach/router 使用教程

    引言 随着前端技术的日益发展,前端应用的规模越来越大,对前端路由的需求也越来越强烈。前端路由可以帮助我们实现跳转页面的同时保持状态,以及实现 SPA(单页应用)。虽然现在已经有很多前端框架自带路由,但...

    5 年前
  • npm 包 @mapbox/mapbox-gl-supported 使用教程

    前言 在前端开发中,我们经常需要使用地图相关的功能。而开源地图库 Mapbox GL JS 是一个非常优秀的选择。它提供了图层、样式、交互等多种功能。但是,在使用 Mapbox GL JS 时,有时候...

    5 年前
  • npm 包 npid 使用教程

    在前端开发过程中,常常需要使用 npm 包来完成各种任务。其中一个常见的需求是为程序生成唯一的进程 ID,这个时候就可以使用 npid 这个 npm 包。 npid 包简介 npid 是一个简单的 n...

    5 年前
  • npm 包 volos-analytics-memory 使用教程

    前言 Node.js 是一个以 V8 引擎为核心的 JavaScript 运行时环境,由于其轻量化和高效性,近年来逐渐成为了服务器端编程的首选语言之一。而在 Node.js 中,有大量的第三方模块可以...

    5 年前
  • npm 包 volos-analytics-apigee 使用教程

    介绍 volos-analytics-apigee 是基于 Apigee Edge 平台的分析组件,可以轻松地用于 API 分析和监控。它提供了与 Apigee Edge 的 API 相关的基本度量标...

    5 年前
  • npm 包 drainer 使用教程

    在前端开发中,我们经常需要处理大量数据,而当数据过于庞大时,我们需要对其进行分批处理。在这种情况下,npm 包 drainer(流式数据处理工具)就可以帮助我们高效处理数据。

    5 年前
  • npm 包 directory-index 使用教程

    在前端开发中,很多时候需要对目录或文件进行操作。在 Node.js 中,有一个 npm 包 directory-index,可以方便地进行目录索引的生成和操作。本篇文章介绍 directory-ind...

    5 年前
  • NPM 包 Cache-Control 使用教程

    介绍 NPM 是目前最流行的前端包管理工具之一,用于下载和管理各种 JavaScript 库、框架和工具。Cache-Control 是一种 HTTP 头信息,用于控制浏览器和其他客户端如何缓存资源。

    5 年前
  • npm 包 cb-blockr 的使用教程

    作为一个前端开发人员,我们经常使用 JavaScript 编写复杂的应用程序。而这些程序通常需要依赖于一些第三方库和模块,来实现我们想要的功能。npm (Node Package Manager) 就...

    5 年前
  • npm 包 bid 使用教程

    什么是 bid bid 是一个 npm 包,它提供了一种简单而可靠的方式实现双向数据绑定。它采用了双向观察模式,通过对属性进行监听和更新,使得当一个属性的值改变时,关联的属性也会跟着更新,从而保证了数...

    5 年前
  • npm 包 ask 使用教程

    在前端的开发过程中,我们经常需要在命令行中与用户进行交互,例如要求用户输入参数或提供选项等。如果每次都要手动编写交互式的代码,那么就会增加工作量和出错的风险。为了解决这个问题,我们可以使用 npm 包...

    5 年前
  • npm 包 grunt-contrib-symlink 使用教程

    简介 grunt-contrib-symlink 是一个 Grunt.js 插件,用于创建符号链接。 符号链接(Symbolic Link,简称 Symlink)是一种特殊的文件,它指向另一个文件或目...

    5 年前
  • npm 包 abstract 使用教程

    在前端开发中,我们常常需要使用到面向对象编程(Object-oriented programming,简称 OOP)的思想以及相关的类、继承、抽象等概念来进行代码设计和封装。

    5 年前
  • npm 包 gossip-cyclon 使用教程

    介绍 gossip-cyclon 是一个基于 gossip 协议的分布式的 Cyclon 算法实现,主要用于在分布式系统中进行节点的信息交换和管理。该包通过构建基于 Cyclon 算法的节点管理系统实...

    5 年前
  • npm 包 @stream-io/mocha-sauce 使用教程

    前言 在前端开发中,我们会经常使用测试框架来保证代码的质量和稳定性。Mocha 是一个非常流行的 JavaScript 测试框架,而 @stream-io/mocha-sauce 是一个专门为 Moc...

    5 年前
  • npm 包 synchronous-promise 使用教程

    在前端开发中,我们经常会遇到需要处理异步请求的情况。传统的处理方法是使用回调函数或 Promise 对象,但是在一些特定场景下,我们需要同步地处理异步请求。这时候,npm 包 synchronous-...

    5 年前
  • npm 包 randgen 使用教程

    在前端开发过程中,我们经常需要随机生成一些数据来测试或模拟。npm 包 randgen 就可以帮助我们轻松地实现这个需求。本文将详细介绍 randgen 的使用方法,让大家能够轻松地掌握这个工具。

    5 年前
  • npm 包 expression-sandbox 使用教程

    前言 在当前的前端开发中,我们常常需要用到一些动态计算的功能,比如计算表达式、编写公式。而 expression-sandbox 这个 npm 包就是为开发者们提供了一个便捷的工具来实现这些功能。

    5 年前
  • 多本 IT 编程类前端技术书籍推荐

    前端技术日新月异,学习与实践是不断前进的过程。在这里,我整理了一份超过500本的前端编程类图书推荐,希望能为大家提供深度和指导意义。以下是其中一些书籍的简介和示例代码。

    5 年前
  • npm 包 express-force-ssl 使用教程

    前言 随着互联网的普及和发展,网站和应用的安全性越来越受到人们的关注。HTTPS 协议作为安全传输协议,已经在越来越多的场景得到了应用。而在 Node.js 的 Web 开发中,使用 express ...

    5 年前

相关推荐

    暂无文章