GraphQL 是由 Facebook 开发的一种通过 API 来调用服务端数据的查询语言规范,近年来成为了前端开发中的热门技术之一。而 Deno 是由 Node.js 的创始人 Dennis M. Ritchie 开发的一个安全的 JavaScript/TypeScript 运行时环境。本文将介绍如何使用 Deno、GraphQL 和 MongoDB 来实现服务端开发,并提供详细的示例代码。
前置知识
在学习本文之前需要了解以下知识:
- 基本的 Node.js 或 JavaScript/TypeScript 开发经验
- GraphQL 的基本概念和使用方法
- MongoDB 数据库及基本操作
安装 Deno
可以通过以下命令在 Unix、Linux 和 macOS 系统上安装 Deno:
$ curl -fsSL https://deno.land/x/install/install.sh | sh
在 Windows 系统上可以通过 PowerShell 安装:
> iwr https://deno.land/x/install/install.ps1 -useb | iex
安装完毕后可以通过以下命令检查 Deno 是否安装成功:
$ deno --version
安装依赖
本文使用到的依赖有:
mongo
:用于操作 MongoDB 数据库oak
:用于搭建基于 HTTP 和 WebSocket 的应用程序graphql
:GraphQL 的 JavaScript 实现
使用以下命令安装:
$ deno install --allow-net --allow-read http://deno.land/x/oak/mod.ts $ deno install --allow-net --allow-read https://deno.land/x/deno_mongo/mod.ts $ deno install --allow-net --allow-read https://cdn.pika.dev/graphql/14.0.2
配置路由
首先需要在 app.ts
文件中配置路由,可以编写以下代码:
-- -------------------- ---- ------- ------ - ------------ ------ - ---- ------ ----- --- - --- -------------- ----- ------ - --- --------- -- ---- ------ ----------------- ----- --------- -- - -- -- ------- -- -- --------- --------- -- - --------------------- - ------ -------- --- ------------------------- --------------------------------- ----- ------------ ----- ---- ---
连接 MongoDB
在 app.ts
中可以编写以下代码来连接 MongoDB:
-- -------------------- ---- ------- ------ - ----------- - ---- ---------- -- ----- ----- ------ - --- -------------- ----- -------------------------------------------- -- -------- ----- -------- - ------------------------------ ----- ---------- - ------------------------------------
处理 GraphQL 请求
使用 graphql
包可以轻松地处理 GraphQL 请求,可以编写以下代码:
-- -------------------- ---- ------- ------ - ------------ -------- -------------- ------ --------- - ---- ---------- -- -- ------- ------ ----- ------- ------------- - ------------- ---- ----- - -------- ----- ----- - ---- ---- - --- --- ----- ------- ------ ------ - --- -- -- ------- -- ----------------------- ----- --------- -- - -- ----------- ----- ---- - --- -------------------------- ------------------------------- -- -------- ------- --- ----- -------- - ------------ -- -- ------- ------ ------ ----- ---------------- - ---------------- ---------- -- ------------------------- - ----------------------- - ---- --------------------- - - ------- ---------------------------- -- -- -------- ------------- ---- -- ------- - -- -- ------- -- ----- ------ - ----- --------------- --------- ----- -------- ------ -- ------ --------------------- - ------- ---
其中需要安装 TextDecoder
:
$ deno install --allow-env --allow-run --allow-net --allow-read --allow-write https://deno.land/std/node/text_decoder.ts
完整代码
以上是 Deno 中使用 GraphQL 和 MongoDB 实现服务端开发的主要代码,下面给出完整的 app.ts
代码:
-- -------------------- ---- ------- ------ - ------------ ------ - ---- ------ ------ - ------------ -------- -------------- ------ --------- - ---- ---------- ------ - ----------- - ---- ---------- ----- --- - --- -------------- ----- ------ - --- --------- -- -- ------- ----- ------ - --- -------------- ----- -------------------------------------------- ----- -------- - ------------------------------ ----- ---------- - ------------------------------------ -- -- ------- ------ ----- ------- ------------- - ------------- ---- ----- - -------- ----- ----- - ---- ---- - --- --- ----- ------- ------ ------ - --- -- -- ------- -- ----------------------- ----- --------- -- - -- ----------- ----- ---- - --- -------------------------- ------------------------------- -- -------- ------- --- ----- -------- - ------------ -- -- ------- ------ ------ ----- ---------------- - ---------------- ---------- -- ------------------------- - ----------------------- - ---- --------------------- - - ------- ---------------------------- -- -- -------- ------------- ---- -- ------- - -- -- ------- -- ----- ------ - ----- --------------- --------- ----- -------- ------ -- ------ --------------------- - ------- --- ------------------------- --------------------------------- ----- ------------ ----- ---- ---
总结
本文介绍了如何在 Deno 中使用 GraphQL 和 MongoDB 实现服务端开发。首先需要安装 Deno 并安装相关依赖,之后可以配置路由、连接 MongoDB 和处理 GraphQL 请求。使用 Deno、GraphQL 和 MongoDB 可以轻松地实现服务端开发,具有很好的可扩展性和可维护性,希望本文可以对读者有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/653721df7d4982a6ebf7e55c