TypeScript 中使用 TypeORM 的教程及最佳实践

· 约 6 分钟读完

介绍

TypeORM 是一个强大的 ORM(对象关系映射)框架,它支持多种数据库,如 MySQL、PostgreSQL、SQLite、Oracle 等。使用 TypeORM 可以让我们更方便地操作数据库,并且不用去手动写 SQL 语句,从而提高开发效率。

在 TypeScript 中使用 TypeORM 可以获得类型检查的优势,让我们更容易地发现代码错误,并且在代码复杂度增加时也更容易维护。

本文将介绍如何在 TypeScript 项目中使用 TypeORM,并且提供一些最佳实践和示例代码。

安装

要在 TypeScript 项目中使用 TypeORM,需要先安装这两个包:

其中 reflect-metadata 是必需的,因为 TypeORM 使用装饰器来定义实体和字段映射关系,而这些装饰器需要 reflect-metadata 支持。

配置

TypeORM 的配置文件最常见的是 ormconfig.js,但是在 TypeScript 项目中,我们可以使用 ormconfig.ts 来获得类型检查的好处。

以下是一个示例配置文件:

定义实体

在 TypeORM 中,一个实体代表了一个数据表,实体的属性代表了数据表中的字段。

以下是一个示例实体定义:

该实体定义了一个名为 users 的数据表,并且有五个字段:id、name、email、password、createdAt 和 updatedAt。id 字段是主键,createdAt 和 updatedAt 字段使用了 @Column 装饰器中的 name 属性来指定了字段名。

定义关系

在 TypeORM 中,实体之间可以有关系,比如一个用户有多篇文章。以下是一个示例关系定义:

这里定义了一个 User 实体和 Post 实体之间的一对多关系,意思是一个用户可以有多篇文章,而一篇文章只能有一个作者。

操作数据

在使用 TypeORM 操作数据之前,需要先创建连接,然后通过连接获取实体的仓库,即 Repository。

以下是一个简单的操作数据的示例:

这里创建了一个名为 Alice 的用户,并将其保存到数据库中。在 save 方法调用完成后,newUser 对象的 id 属性就会被填充上插入数据库后的值,可以在控制台输出。

最佳实践

  • 在 ormconfig.ts 中使用类型声明来获得类型检查的好处。
  • 使用实体定义数据表的结构,使用字段类型、长度、关系等来约束数据合法性。
  • 尽可能使用 async/await 来进行操作,避免回调地狱。
  • 在操作对象的同时,避免对原始对象造成影响,比如对数组进行修改时不要直接修改原数组,而应该创建并返回一个新数组。
  • 将所有的 DB 操作放在单独的文件夹中,按照功能或模块进行划分。
  • 使用迁移来管理数据库结构的变化,避免手动操作数据库造成错误。

结论

本文介绍了在 TypeScript 中使用 TypeORM 的教程及最佳实践和示例代码。通过使用 TypeORM,我们可以方便地操作数据库,更容易发现代码错误,在开发过程中提高代码质量和效率。

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