如何在 Deno 中使用 GraphQL 完成数据库操作

阅读时长 8 分钟读完

GraphQL 是一种用于 API 的查询语言和运行时环境,它旨在更高效、更强大和更易于理解。本文将介绍如何在 Deno 中使用 GraphQL 完成数据库操作。

前置知识

  • 了解 GraphQL 的基本概念
  • 熟悉 Deno 中的模块编程

准备工作

  • 安装 Deno,安装 GraphQL 模块。

创建 GraphQL Server

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

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

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

运行后可以看到输出 Hello, world!

连接数据库

接下来我们将用 Deno 操作数据库进行增删改查操作。这里我们选择使用 Deno 中的 mongodb 模块作为操作数据库的工具。安装方法如下:

创建数据库连接:

创建 GraphQL Schema

我们将使用 GraphQL 实现对 MongoDB 数据库的增删改查操作。我们需要定义 GraphQL Schema 来定义数据模型和操作模型。一个简单的 Book 类型可如下定义:

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

定义 Query 用来查询数据:

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

定义 Mutation 用来增删改数据:

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

我们需要将 Query 和 Mutation 合并成一个 Schema:

现在我们已经准备就绪了,可以使用 graphql() 函数来测试我们的查询和操作了:

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

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

总结

本文介绍了如何在 Deno 中使用 GraphQL 实现对 MongoDB 数据库的增删改查操作。在实际项目中,我们可以使用这种技术来构建安全、高效且易于维护的 Web 应用程序。

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

纠错
反馈