概述
为了与 SQL和 NoSQL 数据库集成,Nest 提供了 @nestjs/typeorm 包。Nest 使用TypeORM是因为它是 TypeScript 中最成熟的对象关系映射器( ORM )。因为它是用 TypeScript 编写的,所以可以很好地与 Nest 框架集成。
TypeORM 提供了对许多关系数据库的支持,比如 PostgreSQL 、Oracle、Microsoft SQL Server、SQLite,甚至像 MongoDB 这样的 NoSQL 数据库。
安装插件
npm安装
npm install --save @nestjs/typeorm typeorm mysql2
或者yarn安装
yarn add @nestjs/typeorm typeorm mysql
连接数据库
forRoot()
方法支持所有TypeORM
包中createConnection()
函数暴露出的配置属性
配置字段 | 描述 |
---|---|
type : ‘mysql’ |
数据库类型 |
host : ‘localhost’ |
连接ip |
port : 3306 |
端口 |
username : ‘root’ |
数据库连接账号 |
password : ‘123456’ |
数据库连接密码 |
database : ‘testbase’ |
要连接的数据库名(需要手动创建名为testbase数据库) |
如果找不到对应的数据库,报如下错误![]() |
|
entities : [] |
要加载的实体 |
synchronize : true |
警告:设置 synchronize: true 不能被用于生产环境,否则您可能会丢失生产环境数据 |
app.module.ts
中配置
import {
Module } from '@nestjs/common';
import {
TypeOrmModule } from '@nestjs/typeorm';
@Module({
imports: [
TypeOrmModule.forRoot({
type: 'mysql',//数据库类型
host: 'localhost',//连接ip
port: 3306,//端口
username: 'root',//数据库连接账号
password: '123456',//数据库连接密码
database: 'testbase',//要连接的数据库名(需要手动创建名为testbase数据库)
entities: [],
synchronize: true,//警告:设置 synchronize: true 不能被用于生产环境,否则您可能会丢失生产环境数据
}),
],
controllers: [],
providers: [],
})
export class AppModule {
}