概述
TypeORM
是一个使用装饰器,对TypeScript
支持非常良好的ORM框架。在NestJS
中,可通过@nestjs/typeorm
,使用装饰器的方式优雅地使用TypeORM
。
使用示例
- 首先在
config/database.ts
导出数据库连接配置:
1 | 复制代码export const DatabaseConfig = { |
- 然后在
ormconfig.ts
导入设置,作用是在使用typeorm migration:generate
等TypeOrm
命令时会使用到这个文件,作为连接数据库的配置。
在TypeOrm
官方文档中提到可以使用ormconfig.json
,ormconfig.js
或者ormconfig.ts
的方式来设置数据库连接,此处我们选择灵活度更高的ts文件形式。
1 | 复制代码import { DataBaseConfig } from 'config/database' |
注意:请保证ormconfig.ts也在tsconfig.json
的编译范围内:
1 | 复制代码{ |
- 在
app.module.ts
导入设置,使用TypeOrmModule.forRoot()
, 在NestJS
框架中,连接到数据库。之后,Connection
和EntityManager
就可以注入到程序中。
官方文档中提到,如果在ormconfig.json
写入配置作为forRoot()
的默认参数,由于我们使用的是ts文件,需要手动导入配置)
1 | 复制代码 import { Module } from '@nestjs/common' |
- 在具体的模块中,通过以下代码,在当前模块下,注册
Repository
。(请先自行创建./example.entity
文件)
1 | 复制代码import { Module } from '@nestjs/common'; |
- 随后,可以在service和controller等中用依赖注入的方式使用
Repository
。
1 | 复制代码 import { Injectable } from '@nestjs/common'; |
推荐规范
- 推荐将数据库连接配置写在.env文件中,而不是采用
ormconfig.json
的方式。这样做的好处是把敏感信息统一在.env中管理。另外也方便拓展连接到多个数据库。如何读取配置文件详见另一文章【NestJS】配置信息与环境变量
本文转载自: 掘金