TypeORM:TypeScript 项目的 ORM 框架
TypeORM:TypeScript 项目的 ORM 框架
TypeORM 是一个面向 Node.js 平台的 ORM 框架,GitHub 上 Star 数达到 36,536,在 JavaScript/TypeScript 生态中属于使用量靠前的数据库映射工具。

TypeORM 支持的数据库种类比同类工具多,包括 MySQL、PostgreSQL、SQLite、SQL Server、Oracle、MongoDB、SAP HANA 等。无论项目用哪种数据库,基本都能直接接入。

核心特性
TypeORM 同时支持 DataMapper 和 ActiveRecord 两种模式。DataMapper 模式下,实体和数据操作分离,适合大型项目;ActiveRecord 模式下,实体自己管理持久化,写起来更快。
用装饰器定义实体的写法很直观:
import { Entity, PrimaryGeneratedColumn, Column } from "typeorm"
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number
@Column()
firstName: string
@Column()
lastName: string
@Column()
age: number
}
查询数据的代码同样简洁:
const userRepository = MyDataSource.getRepository(User)
const allUsers = await userRepository.find()
const firstUser = await userRepository.findOneBy({ id: 1 })
主要功能
TypeORM 覆盖了日常开发中会用到的大部分数据库操作功能:
- 实体关联:支持一对一、一对多、多对多以及自引用关联
- 事务处理:可以对多步数据库操作做原子性提交
- 迁移系统:支持手写迁移脚本,也能从实体定义自动生成
- 查询构建器:提供链式 API,支持 left join、inner join、分页等
- 连接池和主从复制:应对高并发场景
- 日志和监听器:方便调试和在数据变更时执行自定义逻辑
运行平台
TypeORM 不只跑在 Node.js 上,还能在浏览器、React Native、Electron、Ionic 等环境中使用。对 TypeScript 有原生支持,同时也兼容纯 JavaScript 和 ESM 模块。
安装
通过 npm 安装:
npm install typeorm reflect-metadata
TypeORM 的设计思路受到 Hibernate、Doctrine、Entity Framework 等成熟 ORM 的影响,把 Java 和 C# 生态中验证过的模式带到了 JavaScript 世界。对于需要在 TypeScript 项目中做数据库操作的团队来说,TypeORM 是一个值得考虑的选择。
了 JavaScript 世界。对于需要在 TypeScript 项目中做数据库操作的团队来说,TypeORM 是一个值得考虑的选择。
更多推荐

所有评论(0)