Deno 中如何使用 GraphQL 操作数据库?

阅读时长 5 分钟读完

简介

Deno 是由 Node.js 的创始人 Ryan Dahl 开发的一个新一代的服务器端 JavaScript 运行环境。相比于 Node.js,Deno 更加安全、开箱即用、支持 TypeScript 等优势,受到了越来越多开发者的关注。GraphQL 是一种用于 API 的查询语言,以及一种满足你数据查询的运行时。GraphQL 很容易与现有代码集成,并且可以支持多个后端。那么在 Deno 中如何使用 GraphQL 操作数据库呢?本文将会详细介绍。

准备工作

首先需要安装 Deno 和 GraphQL。安装 Deno 可以执行以下命令:

安装 GraphQL 可以执行以下命令:

连接数据库

在使用 GraphQL 操作数据库之前,需要先连接数据库。使用 Deno 操作数据库可以使用第三方模块,例如 deno-postgresdeno_mysqlmongodb-deno-driver 等。这里以 deno-postgres 为例,需要先安装该模块:

然后创建连接数据库的代码如下:

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

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

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

定义 GraphQL Schema

在使用 GraphQL 操作数据库时,需要先定义 GraphQL 的 Schema。Schema 是一个 GraphQL 系统的声明式描述,它描述了可用的类型和字段。可以通过 buildSchema 函数将一个字符串转换成一个执行的 GraphQL schema 对象。这里以一个简单的例子为示例,定义了一个 User 类型和 getUser 查询:

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

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

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

编写 Resolver

Resolver 是处理 GraphQL 查询的函数。在 Resolver 中,需要编写查询数据库的代码,然后返回查询结果。这里以 getUser 查询为例,定义一个 getUser Resolver,代码如下:

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

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

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

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

执行查询

定义完 Schema 和 Resolver 后,就可以执行查询了。使用 graphql 函数将查询结果返回给客户端。代码如下:

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

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

结论

在 Deno 中使用 GraphQL 操作数据库需要先连接数据库,然后定义 GraphQL Schema 和 Resolver。定义完成后就可以执行查询了。GraphQL 和 Deno 都是当前前端领域比较火的技术,掌握了这两者的知识,可以让程序员在实际工作中更加得心应手。

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

纠错
反馈