nestjs基于mysql的CRUD
创建项目
nest new nest_mysql
cd nest_mysql
yarn add typeorm mysql @nestjs/typeorm
创建user相关文件
nest g mo user
nest g s user
nest g c user
nest g class users/user.entity
编写代码
编辑user.entity.ts
文件
import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm';
@Entity()
export class User{
@PrimaryGeneratedColumn()
id: number;
@Column({length:20})
username: string;
@Column()
password: string;
}
编辑user.service.ts
文件
import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { User } from './user.entity';
import { Repository } from 'typeorm';
@Injectable()
export class UserService {
//注入repository
constructor(@InjectRepository(User)
private userRepository: Repository<User>) {
}
//创建用户
async createUser(user: User) {
this.userRepository.save(user)
}
}
编辑user.controller.ts
文件
import { Controller, Post, Body } from '@nestjs/common';
import { User } from './user.entity';
import { UserService } from './user.service';
@Controller('user')
export class UserController {
//注入userService服务
constructor(private readonly userService:UserService){}
@Post()
create(@Body() user:User){
this.userService.createUser(user);
}
}
编辑user.model.ts
文件
import { Module } from '@nestjs/common';
import { UserController } from './user.controller';
import { TypeOrmModule } from '@nestjs/typeorm';
import { User } from './user.entity';
import { UserService } from './user.service';
@Module({
//add 注册实体
imports: [TypeOrmModule.forFeature([User])],
controllers: [UserController],
providers: [UserService]
})
export class UserModule {}
编辑数据库配置文件ormconfig.json
需要在根目录创建这个文件
{
type: 'mysql',
host: 'IP地址',
username: 'root',
password: '数据库密码',
port: 3306,
database: '数据库名称',
// entities: [__dirname + '/../**/*.entity{.ts,.js}'],
// 按照上面的写法会导致entity文件处报错
"entities": ["dist/**/*.entity.js"],
logging: true,
synchronize: true
}
编辑app.module.ts
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { UserModule } from './user/user.module';
import { TypeOrmModule } from '@nestjs/typeorm';
@Module({
imports: [
TypeOrmModule.forRoot(),
UserModule
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule { }
运行项目
yarn run start:dev