在 Node/Express 应用程序中添加 GraphQL

阅读时长 5 分钟读完

GraphQL 是一种由 Facebook 开发的数据查询语言和运行时,适用于任何客户端和服务器。它提供了一种更高效、强大和灵活的替代 REST 的方式来让客户端获取和修改数据。在本篇文章中,我们将讨论如何在 Node/Express 应用程序中集成 GraphQL,让你的应用程序更加高效和灵活。

安装

首先,我们需要安装一些必需的模块,分别是 express、express-graphql 和 graphql。你可以使用 npm 或者 yarn 进行安装。

或者

创建 GraphQL Schema

GraphQL 中的 Schema 定义了数据模型的结构,以及可以查询和修改的字段。我们将使用 GraphQL 的 Schema Definition Language(SDL)来编写我们的 Schema。让我们创建一个名为 schema.js 的文件,并编写如下代码:

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

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

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

在上面的代码中,我们定义了一个名为 Query 的类型,其中包含了一个名为 hello 的字段。此外,我们还使用 buildSchema 函数将上述 SDL 转换为 GraphQL Schema 对象,并将其导出。

创建 GraphQL Resolver

在 GraphQL 中,Resolver 是使用 Schema 中定义字段的所需要的功能。 Resolver 将接收查询,处理数据,然后将结果返回给客户端。

让我们创建一个名为 helloResolver 的文件,并编写如下代码:

在上面的代码中,我们定义了一个名为 hello 的 Resolver,它将返回“Hello, world!”字符串。Resolver 对象由字段名称组成的键和函数组成的值组成。

集成 GraphQL

现在让我们将 GraphQL 集成到我们的 Node/Express 应用程序中。我们将创建一个名为 server.js 的文件,并编写如下代码:

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

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

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

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

在上面的代码中,我们:

  • 导入了 Express、express-graphql、schema 和 helloResolver 模块
  • 创建了一个名为 app 的 Express 应用程序
  • 使用 app.use 将 graphqlHTTP 中间件添加到应用程序中。graphqlHTTP 中的 schema 选项指向我们之前创建的 schema 对象;rootValue 选项是一个对象,其中包含了我们定义的 helloResolver;graphiql 选项允许我们使用 GraphiQL 进行交互性查询。
  • 启动应用程序并在控制台打印 GraphQL 服务器的地址

测试

现在让我们启动服务器并使用浏览器访问 http://localhost:4000/graphql。您将看到 GraphiQL 界面。

在左边的查询窗格中键入以下查询:

单击运行按钮,您应该看到以下响应:

这表明我们的 Node/Express 应用程序现在支持 GraphQL 查询。您可以添加更多的类型和 Resolver,来支持更多复杂的查询和修改数据操作。

结论

在本篇文章中,我们介绍了如何在 Node/Express 应用程序中集成 GraphQL。我们创建了一个基本的 Schema 和 Resolver,并向应用程序添加了 GraphQL middleware。

GraphQL 是一种强大的数据查询语言和运行时,可帮助您构建更高效、强大和灵活的应用程序。希望本文能给您带来启示,并让您更好地了解如何在 Node/Express 应用程序中使用 GraphQL。

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

纠错
反馈