简介
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 install --allow-read --allow-write --allow-plugin --unstable https://deno.land/x/deno_sqlite/mod.ts
这个命令将通过 deno.land 的包管理器将 deno-sqlite 模块在本地安装到 Deno 的缓存目录中,以便我们在 Deno 项目中导入它。要使用 deno-sqlite 模块,请在你的 Deno 项目中添加以下代码:
import { SQLite } from "https://deno.land/x/deno_sqlite/mod.ts"; const db = new SQLite("path/to/database.sqlite");
这个代码将创建一个新的 SQLite 实例,以便我们可以在 Deno 项目中连接到 SQLite 数据库。注意,我们需要将 "path/to/database.sqlite" 替换为我们实际想要连接的数据库的路径。
现在,我们已经将 deno-sqlite 模块安装到 Deno 项目中,我们可以开始使用 SQLite 数据库了。
执行 SQL 查询和更新操作
要在 Deno 项目中使用 SQLite 数据库来执行 SQL 查询和更新操作,我们需要使用 SQLite 实例的 execute() 方法。这个方法接受一个 SQL 查询或更新操作字符串,并返回一个 Promise 对象。当 Promise 对象成功时,我们将得到一个包含查询结果的数组。
以下是一个例子,显示了如何在 Deno 项目中使用 deno-sqlite 模块执行 SQL 查询:
import { SQLite } from "https://deno.land/x/deno_sqlite/mod.ts"; const db = new SQLite("path/to/database.sqlite"); const result = await db.execute("SELECT * FROM users"); console.log(result);
在这个例子中,我们创建了一个新的 SQLite 实例,连接到一个名为 "path/to/database.sqlite" 的数据库。接着,我们执行了一个 SQL 查询,用于从 "users" 表中检索所有用户的数据。最后,我们将结果打印到控制台。
要执行一个 SQL 更新操作,我们可以使用 execute() 方法与 UPDATE、INSERT 或 DELETE 语句一起使用。例如,下面的代码演示了如何将一些新的用户数据插入到 "users" 表中:
import { SQLite } from "https://deno.land/x/deno_sqlite/mod.ts"; const db = new SQLite("path/to/database.sqlite"); const result = await db.execute("INSERT INTO users (name, email, age) VALUES ('John Doe', 'johndoe@mail.com', 35)"); console.log(result);
在这个例子中,我们使用 execute() 方法来执行一个 SQL INSERT 操作,向 "users" 表中插入一些新的用户数据。最后,我们将结果打印到控制台。
数据库迁移
在真实的应用程序中,我们通常需要在数据库中进行更多的更改,例如创建、删除或更改表的结构。我们不能在每个新版本的应用程序中手动执行这些更改。相反,我们需要使用数据库迁移工具来自动执行这些更改。在 Deno 项目中,我们可以使用 deno_lionessmigrate 这个工具来进行数据库迁移。
要使用 deno_lionessmigrate 工具,我们需要在 Deno 项目中安装它。我们可以使用以下命令来安装它:
deno install --allow-write --allow-read --allow-run --allow-env --unstable https://deno.land/x/lionessmigrate/mod.ts
一旦我们安装了 deno_lionessmigrate,我们就可以使用它来创建和执行迁移脚本。下面是一个例子,演示了如何创建和执行一个数据库迁移:
lionessmigrate init
该命令会在我们的 Deno 项目根目录中创建一个新的 migrations 目录。该目录包含一个默认的迁移脚本,并且我们可以使用它来编写我们自己的迁移脚本。
例如,假设我们需要在 "users" 表中添加一个 "role" 列。我们可以创建一个新的迁移脚本,称为 "add_user_role_column.ts",它的内容如下:
-- -------------------- ---- ------- ------ ---- - --------- - ---- -------------------------------------------- ------ ------- - ----- ----------------------- ----- ---------- ---- - -- -- ------ - ----- ---------------- ----- ----- ----- --- ------ ---- ---- --- ---- ------- ------ --- -- ----- ------------ ---- - -- -- ------ - ----- ---------------- ----- ----- ----- ---- ------ -- ------ ---- --- -- - -- ----------
在这个迁移脚本中,我们使用 deno-sqlite 模块中的 execute() 方法来执行 SQL ALTER TABLE 语句,以添加一个新的 "role" 列。我们还实现了 down() 方法,它用于撤销迁移。
要执行这个迁移脚本,我们可以运行以下命令:
lionessmigrate migrate
该命令将应用我们创建的所有迁移脚本,并在数据库结构中应用所有更改。
构建一个完整的 Web 应用程序
现在,我们已经了解了如何在 Deno 项目中使用 SQLite 数据库,并使用数据库迁移工具来自动执行数据库更改。接下来,让我们看一下如何使用 Deno 和 SQLite 一起构建完整的 Web 应用程序。
首先,我们需要使用 Deno 中的一个 Web 服务器,例如 Oak。Oak 是一个轻量级框架,它提供了一种简单的方法来构建 Web API。我们可以使用以下命令将 Oak 安装到我们的 Deno 项目中:
deno install --allow-net --allow-read --allow-write --unstable https://deno.land/x/oak/mod.ts
要在这个 Deno 项目中使用 Oak,我们可以创建一个新的服务器文件,称为 "server.ts",其中包含以下代码:
-- -------------------- ---- ------- ------ - ----------- - ---- --------------------------------- ------ - ------ - ---- ----------------------------------------- ----- -- - --- ---------------------------------- ----- --- - --- -------------- ------------- ----- -- - ----- ------ - ----- ------------------ - ---- -------- ----------------- - ------- --- ----- ------------ ----- ---- ---
在这个服务器代码中,我们创建了一个新的 Oak 应用程序,并将其连接到我们的 SQLite 数据库。然后,我们使用 execute() 方法来执行一个 SQL 查询,用于从 "users" 表中检索所有用户的数据。最后,我们将查询结果作为 HTTP 响应返回给客户端。
现在,我们可以使用以下命令来启动这个服务器:
deno run --allow-net --allow-read --allow-env server.ts
该命令将启动一个 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