如何在 Express.js 中使用 GraphQL

阅读时长 5 分钟读完

什么是 GraphQL

GraphQL 是一种用于 API 的查询语言,它可以替代或补充传统的 REST 架构。GraphQL 的主要优点包括:

  • 可以减少网络请求次数,提高性能
  • 可以根据需要请求数据的不同,只返回所需的数据,减少数据冗余
  • 具有更好的类型检查和自动化工具支持

Express.js 中使用 GraphQL 的优势

Express 是一个流行的 Node.js Web 框架,它具有灵活性和可扩展性,可以方便地集成第三方库和中间件。使用 GraphQL 在 Express 中可以进一步提高应用程序的性能和可维护性。

安装和配置

在 Express.js 中使用 GraphQL 需要安装以下组件:

  • express-graphql:用于在 Express 中添加 GraphQL 中间件
  • graphql:用于创建和执行 GraphQL 查询

可以使用 npm 命令来安装这两个组件:

在 Express.js 中配置 GraphQL 的步骤如下:

  1. 导入所需的组件:

  2. 创建 GraphQL 架构:

    在上面的示例中,我们为 GraphQL 架构定义了一个简单的查询,使用 Query 类型和 hello 字符串类型。

  3. 创建一个处理程序来执行查询:

    上面的处理程序为查询定义了一个简单的 hello 函数,它返回一个字符串。

  4. 创建 Express 应用程序并向其添加 GraphQL 中间件:

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

    在上面的示例中,我们将 GraphQL 中间件添加到了应用程序中,并通过 schemarootValue 参数将 GraphQL 架构和查询处理程序传递给了中间件,graphiql:true 启用了 IDE。

  5. 启动 Express 应用程序:

通过上述步骤,已经成功地在 Express.js 中配置了 GraphQL API。

查询数据

在 GraphQL 中查询数据使用 Query 类型来定义查询,我们可以将查询理解为函数调用。

例如,我们可以编写如下的查询:

执行此查询时,我们应该得到一个字符串 "Hello World!"。

在 GraphQL 查询中,使用花括号 { } 来定义查询和查询参数。

修改数据

在 GraphQL 中,修改数据可以使用 Mutation 类型来定义更改操作,并将数据作为输入参数传递。

例如,我们可以定义一个 Mutation 类型的示例来添加新的用户。

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

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

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

在上面的示例中,我们定义了一个名为 createUserMutation,该操作接受一个输入参数 CreateUserInput,并返回一个 User 对象。

然后,我们可以编写一个处理程序来执行添加用户操作,如下所示:

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

每当我们执行 createUser 操作时,将调用上述处理程序,并利用输入参数来创建新的用户。

示例 GraphQL 查询:

执行此查询将返回一个包含创建用户的数据的结果。

总结

在 Express.js 中使用 GraphQL 有很多优点,包括提高性能和可维护性。该指南介绍了 GraphQL 的基础知识和在 Express 中集成和使用 GraphQL 的步骤和示例代码。使用 GraphQL 的过程中需要更复杂的查询和更多的数据修改,请参考详细文档来实现您的需求。

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

纠错
反馈