nestjs整合typeorm
时间: 2024-06-18 15:04:26 浏览: 244
nestjs是一个基于Node.js的Web框架,它提供了一种现代化的、模块化的、可扩展的方式来构建服务端应用程序。typeorm是一个强大的ORM(对象关系映射)库,它可以将数据库中的关系数据映射为对象,并且提供了一些便利的方法来操作这些对象。
nestjs整合typeorm可以帮助我们更方便地操作数据库,以下是nestjs整合typeorm的步骤:
1. 安装typeorm和nest-typeorm依赖:
```
npm install --save typeorm @nestjs/typeorm
```
2. 在app.module.ts中引入typeorm和nest-typeorm:
```
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { User } from './user.entity'; // 引入实体类
@Module({
imports: [
TypeOrmModule.forRoot({
type: 'mysql',
host: 'localhost',
port: 3306,
username: 'root',
password: '123456',
database: 'test',
entities: [User], // 实体类列表
synchronize: true,
}),
TypeOrmModule.forFeature([User]), // 导入要用到的实体类
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
```
3. 创建实体类:
```
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@Column()
age: number;
@Column()
email: string;
}
```
4. 在服务中使用:
```
import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { User } from './user.entity';
@Injectable()
export class UserService {
constructor(
@InjectRepository(User)
private readonly userRepository: Repository<User>,
) {}
async findAll(): Promise<User[]> {
return await this.userRepository.find();
}
async create(user: User): Promise<User> {
return await this.userRepository.save(user);
}
async update(id: number, user: User): Promise<void> {
await this.userRepository.update(id, user);
}
async delete(id: number): Promise<void> {
await this.userRepository.delete(id);
}
}
```
以上是nestjs整合typeorm的基本步骤,通过使用nestjs整合typeorm可以更方便地操作数据库,并且nestjs提供了很多其他功能,例如异常处理、日志等。如果您有任何问题或者需要更详细的介绍,请告诉我。
阅读全文