Logo

结论

让我们用回顾本课程的内容和几句总结性话语来结束本次学习。

概念

结论

让我们用回顾本课程的内容和几句总结性话语来结束本次学习。

我们学到的内容

在本课程中,我们使用了两种数据库:

  • 我们使用了 Postgres 作为 SQL 数据库,它是目前最常用的数据库之一。它拥有非常完善的文档支持,对于初学者来说,推荐优先使用 Postgres 来学习 SQL 数据库。当你掌握一定技能后,可以根据需要切换到其他数据库。

  • 接着我们使用了 MongoDB,它是目前最常用的 NoSQL 数据库之一。与 SQL 数据库不同,NoSQL 数据库有多种类型(如文档型、图数据库、键值对型),每种类型都针对特定的使用场景进行了优化。

HTTP 接口

在本课程中,我们没有采用传统的 REST API,而是使用了 GraphQL。这两种方式各有优缺点,我们在课程前面已经讨论过。

在项目中使用 GraphQL 之前,务必评估它对现有技术生态可能带来的影响,以判断是否适合你的项目。

使用 REST API 在 Deno 中非常简单。其核心机制与 GraphQL 方式差别不大,你仍然可以保持原有的服务结构和数据访问模型。

Docker

如今,为应用程序构建一个可用的 Docker 容器已成为基本要求。

通过 Docker 发布应用更加简便,也更容易维护和调试。这也是当前大多数技术栈都将 Docker 作为关键组成部分的原因。

你还可以利用 Docker 在不同的环境或操作系统下测试应用,而无需从头配置所有内容。

第三方库

除了上述内容,我们还探索了几款优秀的第三方库,它们在许多操作中表现优异。当然,还有大量未在本课程中介绍的库可供选择。你可以自行探索,甚至可以创建自己的库!

通常情况下,使用成熟的库比从零开始实现更高效。务必选择最适合你需求的库。

在寻找开源库时,应关注以下几点:是否持续更新、使用过程中是否有问题、文档是否清晰易懂。

接下来做什么?

在本课程中,我们学习了两种数据库:Postgres 和 MongoDB。但 Deno 还支持多种其他数据库,你可以进一步探索和使用。包括但不限于以下几种:

  • MySQL:这是最常用且广为人知的 SQL 数据库之一。你也可以使用 MariaDB,它与 MySQL 非常接近。

  • SQLite:顾名思义,这是一个无需独立客户端-服务器架构的 SQL 数据库。在迁移到专用数据库前,非常适合用于快速测试。

  • Redis:这是一个出色的键值型数据库,常被用作数据库、缓存系统以及消息代理。

REST API

在构建 GraphQL 接口时,我们使用了 Oak-GraphQL,这是一个基于 Oak 框架的 GraphQL 中间件。Oak 本身是 Deno 原生 HTTP 的中间件框架,也可用于构建 REST API。

你也可以尝试复现本课程中的应用,通过使用 REST 方式,深入理解 REST API 与 GraphQL 之间的差异。

实时通信

某些应用依赖于客户端与服务器之间的实时通信,因此通常会使用 WebSocket 实现即时信息交换。

你可以尝试使用 GraphQL 订阅功能,这是一种监听数据变化并及时响应的优秀方式。

另一种方法是自行实现 WebSocket。Deno 社区中有许多中间件可以直接用于此目的。例如,你可以开发一个竞拍应用,确保当某位用户提交新出价时,所有其他用户都能立即看到。

编写脚本

与 Node.js 类似,你可以在 Deno 中编写脚本(TypeScript 文件),完成各种任务,比如写入文件、复制文件、查看环境变量,以及其他原本需要 shell 脚本才能完成的操作。

如果你有某个任务希望自动化,并且已安装 Deno,那么几乎都可以用 Deno 脚本来实现。由于使用 TypeScript,代码易于维护和持续演进。

通过本课程的学习,你的技能将得到显著提升,能够将所学知识转化为实际应用。你现在应该已经熟悉了使用 Deno 框架所需的关键概念,例如 TypeScript,同时也了解了在使用 Deno 之前,不同数据库的优缺点。现在,你已经准备好使用 Deno 构建属于自己的 GraphQL API 了!

Course Image

NoSQL:MongoDB 与 Deno

附录