npm 包 apollo-server-errors 使用教程

阅读时长 6 分钟读完

在开发前端应用的过程中,我们经常会使用到一些数据接口来获取数据,并将其渲染到页面中。而开发这些数据接口往往需要使用到后端技术以及相关的库和工具。其中,GraphQL 是当前比较流行的一种数据接口编程语言。而在实现 GraphQL 接口时,我们可能会遇到一些错误处理的问题。今天我们来介绍一个 npm 包:apollo-server-errors,它可以帮助我们更好地处理 GraphQL 接口的错误。

apollo-server-errors 简介

apollo-server-errors 是为 Apollo-Server 打造的一个 GraphQL 接口错误管理库。它可以让你轻松地报告你的错误信息,提供友好的错误响应,还能够通过自定义错误日志来记录所有的错误信息。

apollo-server-errors 使用教程

接下来,我们将使用一个基于 Node.js 和 Apollo-Server 的 GraphQL 应用来使用 apollo-server-errors 库。

步骤 1:安装依赖

首先,我们需要安装 apollo-server-errors 库及其他相关依赖。打开你的终端(terminal)并进入你的项目目录,使用 npm 安装以下依赖:

其中,apollo-server 和 apollo-server-express 为 Apollo-Server 库和 Express 库,graphql 为 GraphQL 库,apollo-server-errors 为我们所需要的错误处理库。

步骤 2:创建服务器

在应用的根目录下创建一个 server.js 文件,并在其中编写如下代码:

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

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

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

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

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

这里我们创建了一个 Express 服务器,并将其与 ApolloServer 集成。在 ApolloServer 的构造函数中我们配置了 typeDefs 和 resolvers,它们分别用于定义 GraphQL Schema 和 Resolver。此外我们还使用了 formatError 函数来定制化 Error 格式。

步骤 3:创建 Schema

在根目录下创建一个 schema.js 文件,并在其中编写如下代码:

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

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

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

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

将 typeDefs 中定义的 Query 节点下的 getUsername 解析函数中加入错误处理。根据输入参数 id 的不同,你可以抛出不同类型的错误。createError 函数可以让你定义多种类型的错误。而 new ApolloError 则为 apollo-server-errors 中提供的一个内置错误。

步骤 4:测试错误处理

启动应用,并在浏览器中打开 GraphiQL 界面测试你的错误处理。

你可以测试以下三种场景:

  1. 输入 id 为 0,产生一个 createError 创建的错误
  2. 输入 id 为 1,产生一个内置的 ApolloError 错误
  3. 输入 id 为其他值,返回成功响应

如下图所示,当我们输入 id 为 0 时会得到如下错误信息:

当我们输入 id 为 1 时,我们会得到以下不同类型的错误信息:

如上图所示,我们可以很清晰地看到错误的类型、捕获的消息以及自定义的 Extensions,这是由 apollo-server-errors 框架提供的。当然,我们也可以通过自定义 formatError 函数来适应自己的业务场景。

总结

在本篇教程中,我们学习了如何使用 apollo-server-errors 库来处理 GraphQL 接口的错误。本文详细地讲解了 apollo-server-errors 的安装及使用方法,并通过一个具体的示例展示了如何使用该库来处理 GraphQL 接口的常见错误。希望这篇文章对你的工作有所帮助,也欢迎你进一步深入学习 apollo-server-errors 来适应更多的业务需求。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/72738

纠错
反馈