TypeORM
TypeORM 是 node.js 现有社区最成熟的对象关系映射器(ORM )。本文介绍如何在 Midway 中使用 TypeORM 。
提示
本模块是从 v3.4.0 开始为新版本,模块名有变化,历史写法部分兼容,如果查询历史文档,请参考 这里。
相关信息:
| 描述 | |
|---|---|
| 可用于标准项目 | ✅ |
| 可用于 Serverless | ✅ |
| 可用于一体化 | ✅ |
| 包含独立主框架 | ❌ |
| 包含独立日志 | ❌ |
和老写法的区别
旧模块为 @midwayjs/orm ,新模块为 @midwayjs/typeorm,区别如下:
- 1、包名不同
- 2、在
src/config.default的部分配置调整- 2.1 配置文件中的 key 不同 (orm => typeorm)
- 2.2修改为数据源的形式
typeorm.dataSource - 2.3 实体模型类或者实体模型类的路径,需要在数据源的
entities字段中声明 - 2.4 Subscriber 需要在数据源的
subscribers字段中声明
- 3、不再使用
EntityModel装饰器,直接使用 typeorm 提供的能力
安装组件
安装 typeorm 组件,提供数据库 ORM 能力。
$ npm i @midwayjs/typeorm@4 typeorm@^1.0.0 --save
或者在 package.json 中增加如下依赖后,重新安装。
{
"dependencies": {
"@midwayjs/typeorm": "^4.0.0",
"typeorm": "^1.0.0",
// ...
},
"devDependencies": {
// ...
}
}
引入组件
在 src/configuration.ts 引入 orm 组件,示例 如下。
// configuration.ts
import { Configuration } from '@midwayjs/core';
import * as orm from '@midwayjs/typeorm';
import { join } from 'path';
@Configuration({
imports: [
// ...
orm // 加载 typeorm 组件
],
importConfigs: [
join(__dirname, './config')
]
})
export class MainConfiguration {
}