Deno 是一个新兴的 JavaScript 运行时,它与 Node.js 不同的是,Deno 自带了一个安全的沙箱环境,能够直接运行 TypeScript 代码,而无需使用额外的编译器。同时,Deno 也提供了许多方便的内置模块,包括用于操作数据库的模块,如 Deno ORM。
Deno ORM 是一个基于 TypeScript 的 ORM 框架,它支持多种数据库,包括 MySQL、PostgreSQL、SQLite 等。在本文中,我们将介绍如何使用 Deno ORM 在 Deno 中操作数据库。
安装 Deno ORM
首先,我们需要安装 Deno ORM。可以使用 Deno 的内置包管理器 deno install 进行安装:
deno install --allow-read --allow-net --unstable https://deno.land/x/nessie/cli.ts
--allow-read 和 --allow-net 参数分别表示允许读取文件和网络请求,这是在 Deno 中使用 ORM 必须的权限。--unstable 表示我们使用的是一个尚未稳定的 API。
初始化项目
接下来,我们需要初始化一个 Deno 项目,并安装 Deno ORM 的依赖:
mkdir my-project cd my-project deno init --allow-read --allow-net --unstable deno install --allow-read --allow-net --unstable https://deno.land/x/nessie/cli.ts
配置数据库
在开始操作数据库之前,我们需要先配置数据库连接。在 Deno ORM 中,我们可以使用配置文件来指定数据库连接。在项目根目录下创建一个 .env 文件,并添加以下内容:
DATABASE_URL=postgres://user:password@localhost:5432/my_database
其中,DATABASE_URL 表示数据库连接地址,可以根据需要修改。
创建模型
在 Deno ORM 中,我们可以使用模型来表示数据库中的表。模型可以继承自 Model 类,并使用装饰器来定义表名、列名等属性。例如,我们可以创建一个 User 模型来表示用户表:
-- -------------------- ---- ------- ------ - ------ ------ - ---- ------------------------------------ ------ ----- ---- ------- ----- - ------ ----- - -------- ------ ---------- - ----- --------- ----------- ---- -- ---- ------- --------- ------ ------- --------- ------- ------- --------- ---------- ------- -
在上面的代码中,我们使用 @Column 装饰器来定义列名和属性。@Column({ primaryKey: true }) 表示该列为主键。
连接数据库
在 Deno ORM 中,我们可以使用 Nessie 类来连接数据库。Nessie 类提供了多个方法,可以用于执行数据库迁移、填充数据等。
-- -------------------- ---- ------- ------ - ------ - ---- ------------------------------------ ------ - ---- - ---- ------------------- ----- ------ - --- -------- ---------------- --------------- ----------- ---------- ------- ------- ------- ----------- --- ----- -------------------
在上面的代码中,我们创建了一个 Nessie 实例,并指定了迁移文件和模型所在的目录。然后,我们使用 nessie.run(["up"]) 方法来执行数据库迁移。
操作数据
在 Deno ORM 中,我们可以使用 QueryBuilder 类来进行数据库操作。QueryBuilder 类提供了多个方法,可以用于查询、插入、更新、删除等操作。例如,我们可以使用以下代码来查询用户表中的所有数据:
import { QueryBuilder } from "https://deno.land/x/denodb/mod.ts";
import { User } from "./models/user.ts";
const users = await QueryBuilder.select().from(User).execute();
console.log(users);在上面的代码中,我们使用 QueryBuilder.select() 方法来指定查询操作,然后使用 QueryBuilder.from(User) 方法来指定查询的表名。最后,我们使用 QueryBuilder.execute() 方法来执行查询操作,并将结果打印出来。
总结
在本文中,我们介绍了如何在 Deno 中使用 Deno ORM 操作数据库。我们首先安装了 Deno ORM,并配置了数据库连接。然后,我们创建了一个模型来表示用户表,并使用 Nessie 类连接数据库。最后,我们使用 QueryBuilder 类进行数据库操作。
Deno ORM 提供了方便的 API,可以帮助我们快速地进行数据库操作。希望本文对你有所帮助,谢谢阅读!
Source: FunTeaLearn,Please indicate the source for reprints https://funteas.com/post/65ff9687d10417a222ac84a5