nestjs连接数据库并创建3张表
时间: 2024-02-02 08:06:11 浏览: 25
好的,我可以为你提供一些关于如何使用NestJS连接数据库并创建3张表的指导。
首先,你需要安装 `TypeORM` 和 `@nestjs/typeorm` 这两个npm包,用于连接数据库和实现ORM。
接下来,在你的 `app.module.ts` 文件中,你需要导入 `TypeOrmModule` 并设置连接数据库的配置。例如:
```
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { User } from './users/user.entity';
import { Post } from './posts/post.entity';
import { Comment } from './comments/comment.entity';
@Module({
imports: [
TypeOrmModule.forRoot({
type: 'mysql',
host: 'localhost',
port: 3306,
username: 'root',
password: 'password',
database: 'database_name',
entities: [User, Post, Comment],
synchronize: true,
}),
],
})
export class AppModule {}
```
在上面的示例中,我们使用了 `mysql` 数据库,并设置了相关的连接信息。同时,我们还导入了 `User`、`Post` 和 `Comment` 这三个实体,这样 `TypeOrmModule` 就可以根据这些实体创建对应的表。
接下来,我们需要创建这三个实体所对应的类。例如,`User` 实体类的定义如下:
```
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@Column()
email: string;
@Column()
password: string;
}
```
在上面的示例中,我们使用了 `@Entity` 装饰器来标识这是一个实体类,使用 `@Column` 装饰器标识每个属性对应的数据库列。同时,我们还使用了 `@PrimaryGeneratedColumn` 装饰器来标识 `id` 属性为主键。
最后,我们需要在需要使用这些实体的模块中导入它们,并使用 `TypeOrmModule.forFeature` 方法将它们注入到模块中。例如:
```
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { UsersController } from './users.controller';
import { UsersService } from './users.service';
import { User } from './user.entity';
@Module({
imports: [TypeOrmModule.forFeature([User])],
controllers: [UsersController],
providers: [UsersService],
})
export class UsersModule {}
```
在上面的示例中,我们导入了 `User` 实体,并使用 `TypeOrmModule.forFeature` 方法将它注入到模块中。这样,我们就可以在 `UsersService` 和 `UsersController` 中使用 `User` 实体了。
通过以上步骤,我们就可以使用 NestJS 连接数据库并创建3张表了。