使用 GraphQL 和 Node.js 构建现代 Web 应用程序

阅读时长 7 分钟读完

GraphQL 是一种用于 API 的查询语言,它是由 Facebook 开发的。GraphQL 可以让前端开发人员更好地控制数据,减少网络请求的数量,提高应用程序的性能。Node.js 是一个运行在服务器端的 JavaScript 运行时环境,它可以让我们使用 JavaScript 编写服务器端代码。在本文中,我们将介绍如何使用 GraphQL 和 Node.js 构建现代 Web 应用程序。

安装和配置

首先,我们需要安装 Node.js。您可以在 Node.js 官方网站 上下载最新版本的 Node.js。安装完成后,您可以在终端中运行以下命令来检查 Node.js 是否已成功安装:

接下来,我们需要安装 GraphQL。您可以在终端中运行以下命令来安装 GraphQL:

我们还需要安装一个用于创建 GraphQL API 的 Node.js 框架。在本文中,我们将使用 Apollo Server。您可以在终端中运行以下命令来安装 Apollo Server:

编写代码

我们将创建一个简单的电影列表应用程序。我们将使用 GraphQL 和 Node.js 来实现以下功能:

  • 获取电影列表
  • 添加电影
  • 删除电影

定义数据模型

我们首先需要定义电影数据模型。在本文中,我们将使用 MongoDB 作为数据库,因此我们需要安装 MongoDB。您可以在 MongoDB 官方网站 上下载最新版本的 MongoDB。

我们创建一个名为 Movie 的数据模型,该模型包含电影的标题、导演和评级。在终端中运行以下命令来安装 Mongoose,它是一个用于在 Node.js 中使用 MongoDB 的对象模型工具:

接下来,我们创建一个名为 models/Movie.js 的文件,并定义 Movie 数据模型:

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

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

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

创建 GraphQL API

我们使用 Apollo Server 来创建 GraphQL API。在终端中创建一个名为 index.js 的文件,并添加以下代码:

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

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

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

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

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

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

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

在上面的代码中,我们定义了 Movie 对象类型,它包含电影的标题、导演和评级。我们还定义了 QueryMutation 对象类型,它们分别用于获取电影列表和添加/删除电影。

我们使用 mongoose 来连接 MongoDB 数据库,并在 resolvers 中实现了 QueryMutation 的逻辑。在 server 中,我们将 typeDefsresolvers 传递给 ApolloServer,并启动服务器。

测试 API

我们现在可以使用 GraphQL Playground 来测试我们的 API。在浏览器中打开 http://localhost:4000,您将看到 GraphQL Playground。在 Playground 的左侧,您可以编写 GraphQL 查询和变异。在右侧,您可以看到查询的结果。

我们可以使用以下查询来获取电影列表:

我们可以使用以下变异来添加电影:

我们可以使用以下变异来删除电影:

结论

在本文中,我们介绍了如何使用 GraphQL 和 Node.js 构建现代 Web 应用程序。我们使用 Apollo Server 来创建 GraphQL API,并使用 Mongoose 来连接 MongoDB 数据库。我们实现了获取电影列表、添加电影和删除电影的功能。GraphQL 可以让我们更好地控制数据,减少网络请求的数量,提高应用程序的性能。Node.js 可以让我们使用 JavaScript 编写服务器端代码。这些技术都是现代 Web 开发中必不可少的。

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

纠错
反馈