如何在 Deno 项目中使用 SQLite 数据库?

阅读时长 9 分钟读完

简介

Deno 是一个用 Rust 编写、支持 TypeScript 的 JavaScript 运行时环境。它类似于 Node.js,但具有更高的安全性和更加现代化的设计。随着 Deno 的不断发展,使用 Deno 来搭建 Web 应用程序已经变得非常流行。而 SQLite 则是一个轻量级、嵌入式、零配置的 SQL 数据库引擎,被广泛应用于各种应用程序中。

本文将介绍如何在 Deno 项目中使用 SQLite 数据库。我们将探讨如何安装 SQLite 驱动程序并使用该驱动程序在 Deno 项目中执行 SQL 查询和更新操作。我们还将讨论如何使用 SQLite 进行数据库迁移,以及如何使用 Deno 和 SQLite 一起构建完整的 Web 应用程序。

安装 SQLite 驱动程序

在我们能够使用 SQLite 数据库之前,我们需要安装 SQLite 驱动程序。由于 Deno 是一个基于 TypeScript 的应用程序,我们将使用 deno-sqlite 模块来安装 SQLite 驱动程序。它是由 crossid 开发的一个 Deno 模块,它提供了一种简单的方法来在 Deno 项目中使用 SQLite 数据库。

要安装 deno-sqlite 模块,请在终端中运行以下命令:

这个命令将通过 deno.land 的包管理器将 deno-sqlite 模块在本地安装到 Deno 的缓存目录中,以便我们在 Deno 项目中导入它。要使用 deno-sqlite 模块,请在你的 Deno 项目中添加以下代码:

这个代码将创建一个新的 SQLite 实例,以便我们可以在 Deno 项目中连接到 SQLite 数据库。注意,我们需要将 "path/to/database.sqlite" 替换为我们实际想要连接的数据库的路径。

现在,我们已经将 deno-sqlite 模块安装到 Deno 项目中,我们可以开始使用 SQLite 数据库了。

执行 SQL 查询和更新操作

要在 Deno 项目中使用 SQLite 数据库来执行 SQL 查询和更新操作,我们需要使用 SQLite 实例的 execute() 方法。这个方法接受一个 SQL 查询或更新操作字符串,并返回一个 Promise 对象。当 Promise 对象成功时,我们将得到一个包含查询结果的数组。

以下是一个例子,显示了如何在 Deno 项目中使用 deno-sqlite 模块执行 SQL 查询:

在这个例子中,我们创建了一个新的 SQLite 实例,连接到一个名为 "path/to/database.sqlite" 的数据库。接着,我们执行了一个 SQL 查询,用于从 "users" 表中检索所有用户的数据。最后,我们将结果打印到控制台。

要执行一个 SQL 更新操作,我们可以使用 execute() 方法与 UPDATE、INSERT 或 DELETE 语句一起使用。例如,下面的代码演示了如何将一些新的用户数据插入到 "users" 表中:

在这个例子中,我们使用 execute() 方法来执行一个 SQL INSERT 操作,向 "users" 表中插入一些新的用户数据。最后,我们将结果打印到控制台。

数据库迁移

在真实的应用程序中,我们通常需要在数据库中进行更多的更改,例如创建、删除或更改表的结构。我们不能在每个新版本的应用程序中手动执行这些更改。相反,我们需要使用数据库迁移工具来自动执行这些更改。在 Deno 项目中,我们可以使用 deno_lionessmigrate 这个工具来进行数据库迁移。

要使用 deno_lionessmigrate 工具,我们需要在 Deno 项目中安装它。我们可以使用以下命令来安装它:

一旦我们安装了 deno_lionessmigrate,我们就可以使用它来创建和执行迁移脚本。下面是一个例子,演示了如何创建和执行一个数据库迁移:

该命令会在我们的 Deno 项目根目录中创建一个新的 migrations 目录。该目录包含一个默认的迁移脚本,并且我们可以使用它来编写我们自己的迁移脚本。

例如,假设我们需要在 "users" 表中添加一个 "role" 列。我们可以创建一个新的迁移脚本,称为 "add_user_role_column.ts",它的内容如下:

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

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

在这个迁移脚本中,我们使用 deno-sqlite 模块中的 execute() 方法来执行 SQL ALTER TABLE 语句,以添加一个新的 "role" 列。我们还实现了 down() 方法,它用于撤销迁移。

要执行这个迁移脚本,我们可以运行以下命令:

该命令将应用我们创建的所有迁移脚本,并在数据库结构中应用所有更改。

构建一个完整的 Web 应用程序

现在,我们已经了解了如何在 Deno 项目中使用 SQLite 数据库,并使用数据库迁移工具来自动执行数据库更改。接下来,让我们看一下如何使用 Deno 和 SQLite 一起构建完整的 Web 应用程序。

首先,我们需要使用 Deno 中的一个 Web 服务器,例如 Oak。Oak 是一个轻量级框架,它提供了一种简单的方法来构建 Web API。我们可以使用以下命令将 Oak 安装到我们的 Deno 项目中:

要在这个 Deno 项目中使用 Oak,我们可以创建一个新的服务器文件,称为 "server.ts",其中包含以下代码:

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

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

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

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

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

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

在这个服务器代码中,我们创建了一个新的 Oak 应用程序,并将其连接到我们的 SQLite 数据库。然后,我们使用 execute() 方法来执行一个 SQL 查询,用于从 "users" 表中检索所有用户的数据。最后,我们将查询结果作为 HTTP 响应返回给客户端。

现在,我们可以使用以下命令来启动这个服务器:

该命令将启动一个 Web 服务器,监听端口 8000,并将所有传入的 HTTP 请求转发到我们刚刚编写的 Oak 应用程序。

我们可以使用类似 Postman 这样的 HTTP 客户端工具来测试我们的服务器。例如,我们可以向 URL http://localhost:8000 发送 GET 请求,并检查响应结果是否正确。

结论

本文介绍了如何在 Deno 项目中使用 SQLite 数据库。我们首先学习了如何安装 deno-sqlite 模块,并使用它来执行 SQL 查询和更新操作。然后,我们讨论了如何使用数据库迁移工具来自动执行数据库更改。最后,我们演示了如何使用 Deno 和 SQLite 一起构建完整的 Web 应用程序。

希望这篇文章对初学者来说是一个有价值的资源,可以帮助他们了解如何在 Deno 项目中使用 SQLite 数据库来构建有效的 Web 应用程序。

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

纠错
反馈