概述
TypeORM 是一个基于 TypeScript 的 ORM 框架,提供了面向对象的方式来操作数据库,支持主流的关系型数据库,如 MySQL、PostgreSQL 和 SQLite 等,其中包括一些先进的功能,如缓存查询结果以及与事务支持集成。而 Deno 则是一款由 Ryan Dahl 编写的 JavaScript 和 TypeScript 运行时,具有安全性高、模块化好、性能优等优点。因此,结合 Deno 和 TypeORM 可以开发出安全可靠、高效稳定的应用程序。
本文将介绍如何在 Deno 中使用 TypeORM 进行 ORM,包括如何安装配置、如何连接数据库、如何定义实体和关系以及如何进行增删改查等功能。
安装与配置
首先需要安装 Deno 和 TypeORM,可以使用以下命令:
# 安装 Deno $ curl -fsSL https://deno.land/x/install/install.sh | sh && export PATH="$HOME/.deno/bin:$PATH" # 安装 TypeORM $ deno install -n typeorm --unstable https://deno.land/x/typeorm@next/cli.ts
然后在项目中执行以下命令来创建一个新的 TypeORM 项目:
$ typeorm init --database=<数据库类型> --name=<项目名称>
其中 <数据库类型>
可选值有 mysql
、postgres
、sqlite
等,根据实际需要进行替换; <项目名称>
是 TypeORM 项目的名称,根据实际需要进行替换。
数据库连接
在 TypeORM 项目的根目录下,有一个名为 ormconfig.json
的配置文件,用于指定数据库连接参数,示例如下:
{ "type": "mysql", "host": "localhost", "port": 3306, "username": "root", "password": "123456", "database": "test" }
在 Deno 中使用 TypeORM 进行数据库连接的示例代码如下:
import { createConnection } from 'typeorm'; const connection = await createConnection();
定义实体
在 TypeORM 中,实体是指代表数据库中表的 JavaScript/TypeScript 类。下面是一个名为 User
的实体类定义:
-- -------------------- ---- ------- ------ - ------- ----------------------- ------ - ---- ---------- --------- ------ ----- ---- - ------------------------- --- ------- --------- ----- ------- --------- ---- ------- -
其中,Entity
装饰器表示这是一个 TypeORM 实体类,在内部使用了 reflect-metadata
来获取类的元信息,然后动态生成 SQL 语句。PrimaryGeneratedColumn
装饰器表示自增主键列,Column
装饰器表示普通列,其它还有很多装饰器可以用来定义索引、外键等。
定义关系
在关系型数据库中,表与表之间的关联称为关系。在 TypeORM 中,关系可以通过装饰器来定义,比如:
-- -------------------- ---- ------- ------ - ------- ----------------------- ------- --------- - ---- ---------- ------ - -------- - ---- ------------- --------- ------ ----- ------- - ------------------------- --- ------- --------- ----- ------- --------- ------ ------- ------------- -- --------- -------- -- ------------------ --------- --------- -
其中,ManyToOne
装饰器表示这是一个多对一的关系,第一个参数是关系的目标实体类,第二个参数是一个回调函数,用于指定如何获取关系目标实体类中与本实体类的关系字段。
增删改查
在 Deno 中使用 TypeORM 进行增删改查的示例代码如下:
-- -------------------- ---- ------- ------ - ---------------- - ---- ---------- ----- ------------------- -- -- ----- ------------------------------ -- -- ----- ----- - ----- ------------------------------ -- -- ----- ------------------------------- --- - ---- --- -- -- ----- ------------------------------- ----
其中,connection
是先前连接数据库得到的实例,manager
属性表示实体管理器,提供了很多操作实体的 API,比如 save
、find
、update
和 delete
等。
总结
本文介绍了如何在 Deno 中使用 TypeORM 进行 ORM,包括安装配置、数据库连接、实体定义和关系定义以及增删改查等功能。TypeORM 具有很好的可读性和可维护性,使用 TypeScript 的语法来编写代码,易于理解和维护。
值得注意的是,本文示例代码可能存在安全隐患和性能问题,读者在实际应用中需要根据需求进行优化和调整。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6466d430968c7c53b07415fe