简介
Deno 是由 Node.js 的创始人 Ryan Dahl 开发的一个新一代的服务器端 JavaScript 运行环境。相比于 Node.js,Deno 更加安全、开箱即用、支持 TypeScript 等优势,受到了越来越多开发者的关注。GraphQL 是一种用于 API 的查询语言,以及一种满足你数据查询的运行时。GraphQL 很容易与现有代码集成,并且可以支持多个后端。那么在 Deno 中如何使用 GraphQL 操作数据库呢?本文将会详细介绍。
准备工作
首先需要安装 Deno 和 GraphQL。安装 Deno 可以执行以下命令:
curl -fsSL https://deno.land/x/install/install.sh | sh
安装 GraphQL 可以执行以下命令:
npm install graphql
连接数据库
在使用 GraphQL 操作数据库之前,需要先连接数据库。使用 Deno 操作数据库可以使用第三方模块,例如 deno-postgres
、deno_mysql
、mongodb-deno-driver
等。这里以 deno-postgres
为例,需要先安装该模块:
deno install --allow-net --allow-env --allow-read --allow-write --unstable https://deno.land/x/postgres/mod.ts
然后创建连接数据库的代码如下:
-- -------------------- ---- ------- ------ - ------ - ---- -------------------------------------- ----- ------ - --- -------- ----- ------- --------- ----------- --------- ------- --------- ------------ ----- ---- --- ----- -----------------
定义 GraphQL Schema
在使用 GraphQL 操作数据库时,需要先定义 GraphQL 的 Schema。Schema 是一个 GraphQL 系统的声明式描述,它描述了可用的类型和字段。可以通过 buildSchema
函数将一个字符串转换成一个执行的 GraphQL schema 对象。这里以一个简单的例子为示例,定义了一个 User
类型和 getUser
查询:
type User { id: ID name: String } type Query { getUser(id: ID!): User }
-- -------------------- ---- ------- ------ - ------------ ------------- - ---- ---------- ----- ------- ------------- - ------------- ---- ---- - --- --- ----- ------- - ---- ----- - ----------- ----- ---- - ---
编写 Resolver
Resolver 是处理 GraphQL 查询的函数。在 Resolver 中,需要编写查询数据库的代码,然后返回查询结果。这里以 getUser
查询为例,定义一个 getUser
Resolver,代码如下:
-- -------------------- ---- ------- ------ - ------ - ---- -------------------------------------- ----- ------ - --- -------- ----- ------- --------- ----------- --------- ------- --------- ------------ ----- ---- --- ----- ----------------- ----- --------- - - -------- ----- ------ ---- -------- -- - ----- ------ - ----- -------------------- - ---- ----- ----- -- - ---- ---- -- ---------------- - -- - ------ --------------- - ---- - ----- --- ----------- --- --------- - - --
执行查询
定义完 Schema 和 Resolver 后,就可以执行查询了。使用 graphql
函数将查询结果返回给客户端。代码如下:
-- -------------------- ---- ------- ------ - ------- - ---- ---------- ----- --------- ------- ------- - ----- - ----------- ---- - -- ---- - - -- ---------- --------- ---------------- -- - -------------------- ---
结论
在 Deno 中使用 GraphQL 操作数据库需要先连接数据库,然后定义 GraphQL Schema 和 Resolver。定义完成后就可以执行查询了。GraphQL 和 Deno 都是当前前端领域比较火的技术,掌握了这两者的知识,可以让程序员在实际工作中更加得心应手。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67739a466d66e0f9aae51733