在 Deno 中使用数据库

阅读时长 6 分钟读完

Deno 是一个新兴的 JavaScript/TypeScript 运行时环境,它在很多方面都和 Node.js 相似,但是拥有更先进的安全模型和更加统一的标准库。由于 Deno 刚刚发布不久,它的生态系统还相对不完善,不过我们可以通过一些第三方库来实现像在 Node.js 中一样使用数据库。

在这篇文章中,我们将介绍如何在 Deno 中使用多种类型的数据库。我们会先从基本概念开始,再逐步引入一些更加高级的主题。

基本概念

在任何编程语言中,使用数据库都需要熟悉一些基本概念。在 Deno 中,我们可以用以下术语来描述与数据库交互的过程。

连接

连接是我们和数据库之间建立的通道。一旦连接已经建立,我们就可以执行所有的 CRUD 操作(增删改查)。

查询

查询是一种对数据库中存储的数据进行查找和筛选的操作。通过查询,我们可以在数据库中找到那些与我们需要的数据相匹配的记录。

命令

命令是一种对数据库中存储的数据进行增加、修改或删除的操作。通过命令,我们可以向数据库中添加新数据,更新已有数据或删除不必要的数据。

结果

结果是我们从数据库查询或命令之后得到的响应。结果可能表示查询到的数据、某起操作是否成功,或者任何其他我们想要从数据库中获得的信息。

使用 SQLite

SQLite 是一种以文件形式存储数据的关系型数据库。它是一个轻量级、独立、高效和零配置的数据库引擎。SQLite 在 Deno 中的官方支持库是 deno-sqlite,我们可以通过这个库轻松地访问和修改 SQLite 数据库。

以下是一个使用 SQLite 的例子:

在这个例子中,我们创建了一个 SQLite 数据库文件 test.db(如果它不存在)并在其中创建了一个名为 users 的表。然后,我们插入了一条名为 Alice 的新用户记录,并使用 SELECT 查询返回所有的用户记录。

注意,我们在查询中使用了参数绑定,这是一种可以防止 SQL 注入攻击的技术。通过参数绑定,我们可以确保不会在查询字符串中直接插入用户提供的数据。

使用 MySQL

MySQL 是一种在 Web 开发中被广泛使用的关系型数据库。尽管 MySQL 广泛使用,但是在 Deno 中官方支持的 MySQL 驱动程序是 deno_mysql,它和Node.js中的 mysql 包类似。我们可以通过这个库来实现与 MySQL 数据库的连接和跨平台的操作。

以下是一个使用 MySQL 的例子:

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

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

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

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

在这个例子中,我们首先建立了一个新的 MySQL 连接,并在其中创建了一个新表 users。然后,我们插入了一条名为 Alice 的新用户记录,并使用 SELECT 查询返回所有的用户记录。

值得注意的是,我们在执行 SQL 查询或命令时使用了 await,因为这些操作可能需要花费一些时间。Deno 中的许多异步 API 都是基于 Promise 的,所以我们可以使用 await 等待操作完成。

使用 PostgreSQL

PostgreSQL 是一种开源的对象-关系型数据库,它支持大量的高级功能例如深度客户端-服务器安全协议,以及可扩展的 JSON 数据支持。与 MySQL 驱动程序一样,Deno 中的官方支持库是 deno-postgres,接口和 Node.js 中的 pg 包类似。

以下是一个使用 PostgreSQL 的例子:

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

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

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

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

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

在这个例子中,我们首先建立了一个新的 PostgreSQL 连接,并在其中创建了一个新表 users。然后,我们插入了一条名为 Alice 的新用户记录,并使用 SELECT 查询返回所有的用户记录。我们使用 $1 或者 $2 表示查询参数列表的位置,它们以 1 为起始位置。

与 MySQL 一样,我们在执行 SQL 查询或命令时使用了 await,因为这些操作可能需要花费一些时间。使用 deno-postgres 将会产生更加可读性高的 JavaScript 代码。

总结

在本文中,我们学习了如何在 Deno 中使用各种不同类型的数据库。我们介绍了一些与数据库交互的基本概念,并且演示了如何使用各种类型的数据库驱动程序来连接和执行一些基本的操作。我们有很多的选择,从轻量级的 SQLite 到功能更为强大的 MySQL 和 PostgreSQL。我们也学习了如何使用 Deno 中的异步 API。你可以学习这些概念及使用实践中的代码,从而在 Deno 中轻松地使用数据库。

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

纠错
反馈