在 GraphQL 中使用变异操作执行数据库操作

阅读时长 6 分钟读完

在 GraphQL 中使用变异操作执行数据库操作

GraphQL 是一种新型的数据查询语言,它可以使前端开发者更加便捷和灵活地与后端进行交互,而变异操作则是 GraphQL 中用于执行对数据的修改操作的语言。与传统的 RESTful API 相比,GraphQL 不仅可以更精简地请求数据,同时还拥有强大的类型检查、多字段查询、数据分页等特性。本文将介绍在 GraphQL 中如何利用变异操作执行数据库的增删改查操作。

  1. 数据库链接

在使用 GraphQL 进行数据库操作前,我们需要先配置好数据库的连接信息。这里我们以 MongoDB 数据库为例,首先需要安装 mongoose 模块:

app.js 中进行数据库链接的配置:

  1. 定义数据库模型

在使用 GraphQL 进行数据库操作前,我们还需要定义好数据库中每个集合的数据模型。以一个用户信息为例,我们先定义一个 User 数据模型:

  1. 定义 GraphQL schema

接下来我们需要在 GraphQL 中定义一个反应数据模型的 schema。我们可以利用 graphqlgraphql-tools 这两个模块来完成 schema 的定义。先安装这两个模块:

然后在 app.js 中添加以下代码:

-- -------------------- ---- -------
----- - -------------------- - - -------------------------
----- -------- - -
  ---- ---- -
    ----- ------
    ---- ---
    ---- ------
  -
  ---- ----- -
    ------ ------
  -
  ---- -------- -
    ---------------- -------- ---- ----- ---- --------- ----
    -------------- ---- ----- ------- ---- ---- ---- -------- ----
    -------------- ----- ----
  -
--
----- --------- - -
  ------ -
    ------ -- -- ------------------
  --
  --------- -
    ----------- -------- - ----- ---- --- -- -- -
      ----- ------- - --- ----------- ----- ---- --- ---
      ------ ---------------
    --
    ----------- -------- - --- ----- ---- --- -- -- -
      ------ ------------------------------- - ----- ---- --- ---
    --
    ----------- -------- - -- -- -- -
      ------ --------------------------------
    -
  -
--
----- ------ - ----------------------
  ---------
  ---------
---
展开代码

在以上代码中,我们定义了一个 User 类型,其包含了 nameagesex 三个字段,并在 Query 中定义了一个 users 查询,它将返回所有集合中的用户信息,同时在 Mutation 中定义了三个变异操作,分别为 createUserupdateUserdeleteUser,用于创建、更新、删除用户信息。

  1. 运行 GraphQL

接下来,我们运行 GraphQL 服务器(在 app.js 中监听端口为 4000):

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

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

-----------------
-------------------- - ------- --- ------ -- --------------------------------
展开代码

现在我们就可以在浏览器中访问 http://localhost:4000/graphql 来测试 GraphQL 了。在 GraphQL IDE 中,可以尝试以下三个变异操作:

  • 创建一个新用户:

返回值:

-- -------------------- ---- -------
-
  ------- -
    ------------- -
      ------- --------
      ------ ---
      ------ ------
    -
  -
-
展开代码
  • 更新一个用户:

返回值:

-- -------------------- ---- -------
-
  ------- -
    ------------- -
      ------- -------
      ------ ---
      ------ ------
    -
  -
-
展开代码
  • 删除一个用户:

返回值:

-- -------------------- ---- -------
-
  ------- -
    ------------- -
      ------- -------
      ------ ---
      ------ ------
    -
  -
-
展开代码

通过以上操作,我们可以看到 GraphQL 对于数据库操作的基本流程,其实也可以参考此流程执行其他数据库类型的操作。GraphQL 能够更好的发挥出其优点,从而提高开发效率和代码质量,值得我们去深入学习和掌握。

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

纠错
反馈

纠错反馈