nestjs typeorm 帮我写一段代码操作mysql 数据库的 user 表
时间: 2024-05-13 09:17:20 浏览: 166
好的,下面是使用 NestJS 和 TypeORM 操作 MySQL 数据库的 user 表的示例代码:
首先,你需要安装必要的依赖:
```bash
npm install --save @nestjs/typeorm typeorm mysql
```
接下来,创建一个 User 实体类,用于映射 user 表数据:
```typescript
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@Column()
age: number;
@Column()
email: string;
}
```
接着,在你的模块中导入 TypeORM 模块和 User 实体类,并配置 TypeORM 的连接信息:
```typescript
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { User } from './user.entity';
@Module({
imports: [
TypeOrmModule.forRoot({
type: 'mysql',
host: 'localhost',
port: 3306,
username: 'root',
password: 'password',
database: 'test',
entities: [User],
synchronize: true,
}),
TypeOrmModule.forFeature([User]),
],
})
export class AppModule {}
```
现在,你可以在你的服务中注入 TypeORM 的 Repository 对象,并使用它来操作 user 表了:
```typescript
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 this.userRepository.find();
}
async create(user: User): Promise<User> {
return this.userRepository.save(user);
}
async update(user: User): Promise<User> {
return this.userRepository.save(user);
}
async delete(id: number): Promise<void> {
await this.userRepository.delete(id);
}
}
```
上面的代码中,我们注入了 UserRepository 对象,并使用它提供的方法来实现了查询、新增、更新和删除 user 数据的操作。
希望这个示例代码对你有所帮助。
阅读全文