认识TypeORM
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 模式,这意味着你
可以以最高效的方式编写高质量的、松耦合的、可扩展的、可维护的应用程序。
TypeORM的特性
支持 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是