nestjs基于mysql的CRUD

1,446 阅读1分钟

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

postman进行post请求

整体文件请看仓库

gitee.com/suxinying/n…