nestjs自动建表 mysql
时间: 2023-11-27 15:48:16 浏览: 154
根据提供的引用内容,可以看出nestjs是一个基于Node.js的后端框架,可以使用它来构建高效且可扩展的服务器端应用程序。在nestjs中使用mysql数据库可以通过TypeORM来实现,TypeORM是一个ORM框架,可以将对象映射到数据库中的表中。下面是在nestjs中使用TypeORM自动建表的步骤:
1. 安装TypeORM和mysql驱动程序
```shell
npm install --save @nestjs/typeorm typeorm mysql
```
2. 在app.module.ts中导入TypeOrmModule和ConfigModule
```typescript
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { ConfigModule } from '@nestjs/config';
@Module({
imports: [
ConfigModule.forRoot(),
TypeOrmModule.forRoot({
type: 'mysql',
host: process.env.DB_HOST,
port: parseInt(process.env.DB_PORT),
username: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
database: process.env.DB_DATABASE,
autoLoadEntities: true,
synchronize: true,
}),
],
})
export class AppModule {}
```
3. 创建实体类
```typescript
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@Column()
age: number;
}
```
4. 在服务中使用实体类
```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 await this.userRepository.find();
}
async create(user: User): Promise<User> {
return await this.userRepository.save(user);
}
}
```
5. 运行应用程序
```shell
npm run start
```
这样,当应用程序启动时,TypeORM将自动创建User实体对应的表。
阅读全文