认识Ty p e O R M
◼ TypeORM 是一个ORM (opens new window)框架,它可以运行在 NodeJS、Browser、Cordova、PhoneGap、Ionic、
React Native、Expo 和 Electron 平台上,可以与 TypeScript 和 JavaScript (ES5,ES6,ES7,ES8)一起使用。 它的目标
是始终支持最新的 JavaScript 特性并提供额外的特性以帮助你开发任何使用数据库的(不管是只有几张表的
小型应用还是拥有多数据库的大型企业应用)应用程序。
◼ 不同于现有的所有其他 JavaScript ORM 框架,TypeORM 支持 Active Record和 Data Mapper 模式,这意味着你
可以以最高效的方式编写高质量的、松耦合的、可扩展的、可维护的应用程序。
Ty p e O R M的特性
◼ 支持 DataMapper 和 ActiveRecord (随你选择) ◼ 实体和列
◼ 数据库特性列类型
◼ 实体管理
◼ 存储库和自定义存储库
◼ 清晰的对象关系模型
◼ 关联(关系)
◼ 贪婪和延迟关系
◼ 单向的,双向的和自引用的关系
◼ 支持多重继承模式
◼ 级联
◼ 索引
◼ 事务
◼ 迁移和自动迁移
◼ 连接池
◼ 主从复制
◼ 使用多个数据库类型
◼ 跨数据库和跨模式查询
◼ 优雅的语法,灵活而强大的 QueryBuilder
◼ 左联接和内联接
◼ 使用联查查询的适当分页
◼ 查询缓存
◼ 原始结果流
◼ 日志
◼ 监听者和订阅者(钩子)
◼ 支持闭包表模式
◼ 在模型或者分离的配置文件中声明模式
◼ json / xml / yml / env 格式的连接配置
◼ 支持 MySQL / MariaDB / Postgres / SQLite / Microsoft SQL Server / Oracle / sql.js
◼ 支持 MongoDB NoSQL 数据库
◼ 可在 NodeJS / 浏览器 / Ionic / Cordova / React Native / Expo / Electron 平台上使用
◼ 支持 TypeScript 和 JavaScript
◼ 生成高性能、灵活、清晰和可维护的代码
◼ 遵循所有可能的最佳实践
◼ 命令行工具
安装(一)
◼ 通过npm安装: ◼ npm install typeorm --save
◼ 你还需要安装 reflect-metadata:
◼ npm install reflect-metadata --save
◼ 并且需要在应用程序的全局位置导入(例如在app.ts中)
◼ import “reflect-metadata”;
◼ 你可能还需要安装 node typings(以此来使用 Node 的智能提示):
◼ npm install @types/node –save
◼ 安装数据库驱动 MySQL
◼ npm install mysql --save (也可以安装 mysql2)
◼ 此外,请确保你使用的是 TypeScript 编译器版本2.3或更高版本,并且已经在tsconfig.json中启用了以下设置: ◼ “emitDecoratorMetadata”: true,
◼ “experimentalDecorators”: true,
◼ 你可能还需要在编译器选项的lib中启用es6, ,或者从@types安装es6-shim
安装(二)
◼ 开始使用 TypeORM 的最快方法是使用其 CLI 命令生成启动项目。 只有在 NodeJS 应用程序中使用
TypeORM 时,此操作才有效。
◼ 首先全局安装 TypeORM: ◼ npm install typeorm –g ◼ 然后转到要创建新项目的目录并运行命令:
◼ typeorm init --name MyProject --database mysql
◼ 其中name是项目的名称,database是您将使用的数据库。
◼ 数据库可以是以下值之一: mysql, mariadb, postgres, sqlite, mssql, oracle, mongodb, cordova, react-native,
expo, nativescript. ◼ 你还可以在现有 node 项目上运行typeorm init,但要注意,此操作可能会覆盖已有的某些文件。
数据库配置文件
◼ 大多数情况下,我们希望将连接选项存储在单独的配置文件中,因为此方式使管理变得更方便和容易。 TypeORM 支
持多个配置源。你只需要在应用程序的根目录(package.json附近)中创建一个ormconfig.[format]文件存放连接配置