在 Node.js 应用中使用 GraphQL 的教程

阅读时长 4 分钟读完

GraphQL 是一种用于 API 的查询语言。它可以让客户端精确地指定需要的数据,从而避免了 RESTful API 中的“过度获取”问题。在 Node.js 应用中使用 GraphQL 可以提高 API 的效率和可扩展性。本文将介绍如何在 Node.js 应用中使用 GraphQL。

步骤一:安装依赖

首先,我们需要安装以下依赖:

  • graphql:GraphQL 的核心库。
  • express:Node.js Web 框架。
  • express-graphql:用于将 GraphQL 与 Express 集成。

步骤二:创建 GraphQL Schema

GraphQL Schema 定义了查询和数据类型。我们需要创建一个 GraphQL Schema,以便客户端可以查询和获取数据。

schema.js 文件中,我们可以定义 GraphQL Schema。以下是一个示例:

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

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

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

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

在上面的示例中,我们定义了一个 UserType 和一个 RootQueryTypeUserType 定义了用户的数据类型,RootQueryType 定义了查询类型。我们还定义了一个 resolve 函数,用于从数据库或其他数据源获取数据。

步骤三:创建 Express 应用

接下来,我们需要使用 Express 创建一个 Web 应用。在 app.js 文件中,我们可以创建 Express 应用并将 GraphQL 集成到应用中。以下是一个示例:

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

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

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

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

在上面的示例中,我们将 GraphQL 集成到 Express 应用中。我们使用 graphqlHTTP 中间件将 GraphQL Schema 和 GraphiQL 集成到应用中。graphiql: true 选项表示我们希望在浏览器中打开 GraphiQL,从而可以测试和调试 GraphQL API。

步骤四:测试 GraphQL API

现在我们已经创建了 GraphQL Schema 和 Express 应用,我们可以在浏览器中测试我们的 GraphQL API。在浏览器中打开 http://localhost:3000/graphql,我们将看到 GraphiQL 界面。在左侧的查询编辑器中,我们可以编写 GraphQL 查询。以下是一个示例查询:

在上面的示例中,我们查询了一个用户的数据。我们使用 user(id: "1") 查询了 ID 为 1 的用户的数据,并选择了 idnameemail 字段。在右侧的结果面板中,我们可以看到查询结果。

结论

在本文中,我们介绍了如何在 Node.js 应用中使用 GraphQL。我们创建了一个 GraphQL Schema,将 GraphQL 集成到 Express 应用中,并在浏览器中测试了 GraphQL API。使用 GraphQL 可以提高 API 的效率和可扩展性,因此在实际项目中,我们应该考虑使用 GraphQL 来设计和实现 API。

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

纠错
反馈