在 Express.js 中使用 GraphQL 的完整指南

阅读时长 4 分钟读完

GraphQL 是一种用于 API 的查询语言,它提供了一种更高效、更强大的方式来获取数据。在前端开发中,GraphQL 已经成为了一种非常流行的技术,而在后端开发中,Express.js 是一种非常流行的 Node.js 框架。本文将介绍如何在 Express.js 中使用 GraphQL。

安装依赖

首先,需要安装 expressexpress-graphql 两个依赖:

创建 GraphQL Schema

在 Express.js 中使用 GraphQL 需要创建一个 GraphQL Schema,Schema 定义了所有可查询的数据和操作。下面是一个简单的例子:

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

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

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

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

上面的代码定义了一个 User 类型和一个 RootQuery 类型。User 类型有三个字段:idnameemailRootQuery 类型有一个 user 字段,它接受一个 id 参数,并返回一个 User 对象。resolve 函数会查询数据库或其他数据源,返回对应的用户数据。

创建 Express.js 应用

现在,我们需要将 GraphQL Schema 集成到 Express.js 应用中。下面是一个简单的例子:

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

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

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

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

上面的代码创建了一个 Express.js 应用,将 /graphql 路径映射到 GraphQL API 上。graphqlHTTP 中间件接受一个 schema 参数,这个参数就是我们之前创建的 GraphQL Schema。graphiql 参数表示是否启用 GraphiQL 工具,它可以帮助我们测试和调试 GraphQL API。

测试 GraphQL API

现在,我们可以使用 GraphiQL 工具来测试我们的 GraphQL API。在浏览器中打开 http://localhost:3000/graphql,就可以看到 GraphiQL 工具界面。输入以下查询语句:

点击运行按钮,就可以获取到 id 为 1 的用户的信息了。

总结

本文介绍了如何在 Express.js 中使用 GraphQL。首先,需要创建一个 GraphQL Schema,定义可查询的数据和操作。然后,将 GraphQL Schema 集成到 Express.js 应用中,创建 GraphQL API。最后,使用 GraphiQL 工具测试 GraphQL API。GraphQL 是一种非常强大的技术,它可以帮助我们更高效、更方便地获取数据。在开发过程中,可以考虑使用 GraphQL 来优化 API 的设计。

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

纠错
反馈