三、nestJS接口增删改查数据库初次学习过程
1.增
import {
Controller,
Get,
Post,
Body,
Patch,
Param,
Delete,
} from '@nestjs/common';
import { UserService } from './user.service';
import { CreateUserDto } from './dto/create-user.dto';
import { UpdateUserDto } from './dto/update-user.dto';
interface UserResponse<T = unknown> {
code: number;
data?: T;
message: string;
}
@Controller('user')
export class UserController {
constructor(private readonly userService: UserService) {}
@Post('addUser')
create(@Body() createUserDto: CreateUserDto) {
return this.userService.create(createUserDto);
}
}
import { Injectable } from '@nestjs/common';
import { CreateUserDto } from './dto/create-user.dto';
import { UpdateUserDto } from './dto/update-user.dto';
import { User } from './entities/user.entity';
import { Repository } from 'typeorm';
import { InjectRepository } from '@nestjs/typeorm';
@Injectable()
export class UserService {
constructor(
@InjectRepository(User)
private readonly usersRepository: Repository<User>,
) {}
async create(CreateUserDto: CreateUserDto) {
try {
await this.usersRepository.save(CreateUserDto);
return {
code: 200,
message: 'Success',
};
} catch (e) {
return {
code: 400,
message: e,
};
}
}
}
- 在
postman中查询接口,打开数据库已经添加了一条记录

2.删
import {
Controller,
Get,
Post,
Body,
Patch,
Param,
Delete,
} from '@nestjs/common';
import { UserService } from './user.service';
import { CreateUserDto } from './dto/create-user.dto';
import { UpdateUserDto } from './dto/update-user.dto';
interface UserResponse<T = unknown> {
code: number;
data?: T;
message: string;
}
@Controller('user')
export class UserController {
constructor(private readonly userService: UserService) {}
@Delete('/deleteId/:id')
remove(@Param('id') id: string) {
return this.userService.remove(+id);
}
}
import { Injectable } from '@nestjs/common';
import { CreateUserDto } from './dto/create-user.dto';
import { UpdateUserDto } from './dto/update-user.dto';
import { User } from './entities/user.entity';
import { Repository } from 'typeorm';
import { InjectRepository } from '@nestjs/typeorm';
@Injectable()
export class UserService {
constructor(
@InjectRepository(User)
private readonly usersRepository: Repository<User>,
) {}
async remove(id: number) {
try {
await this.usersRepository.delete(id);
return {
code: 200,
data: id,
message: 'Success',
};
} catch (e) {
return {
code: 400,
message: e,
};
}
}
}
- 在
postman中查询删除接口,打开数据库已经删掉了一条id=1的记录


3.改
import {
Controller,
Get,
Post,
Body,
Patch,
Param,
Delete,
} from '@nestjs/common';
import { UserService } from './user.service';
import { CreateUserDto } from './dto/create-user.dto';
import { UpdateUserDto } from './dto/update-user.dto';
interface UserResponse<T = unknown> {
code: number;
data?: T;
message: string;
}
@Controller('user')
export class UserController {
constructor(private readonly userService: UserService) {}
@Patch('/updateId/:id')
update(@Param('id') id: string, @Body() updateUserDto: UpdateUserDto) {
return this.userService.updateUser(+id, updateUserDto);
}
}
import { Injectable } from '@nestjs/common';
import { CreateUserDto } from './dto/create-user.dto';
import { UpdateUserDto } from './dto/update-user.dto';
import { User } from './entities/user.entity';
import { Repository } from 'typeorm';
import { InjectRepository } from '@nestjs/typeorm';
@Injectable()
export class UserService {
constructor(
@InjectRepository(User)
private readonly usersRepository: Repository<User>,
) {}
async updateUser(id: number, updateUserDto: UpdateUserDto) {
try {
await this.usersRepository.update(id, { ...updateUserDto });
return {
code: 200,
message: 'Success',
};
} catch (e) {
return {
code: 400,
message: e,
};
}
}
}


4.查(查询所有用户列表)
user.controller.ts文件通过调用user.userService里面的findAll方法返回从
数据库调用的数据
import {
Controller,
Get,
Post,
Body,
Patch,
Param,
Delete,
} from '@nestjs/common';
import { UserService } from './user.service';
import { CreateUserDto } from './dto/create-user.dto';
import { UpdateUserDto } from './dto/update-user.dto';
interface UserResponse<T = unknown> {
code: number;
data?: T;
message: string;
}
@Controller('user')
export class UserController {
constructor(private readonly userService: UserService) {}
@Get('all')
async findAll(): Promise<UserResponse> {
return {
code: 200,
data: await this.userService.findAll(),
message: 'Success',
};
}
}
user.service.ts文件查一下TypeORM中文文档
userRepository调用find()方法查找到所有的用户数据
import { Injectable } from '@nestjs/common';
import { CreateUserDto } from './dto/create-user.dto';
import { UpdateUserDto } from './dto/update-user.dto';
import { User } from './entities/user.entity';
import { Repository } from 'typeorm';
import { InjectRepository } from '@nestjs/typeorm';
@Injectable()
export class UserService {
constructor(
@InjectRepository(User)
private readonly usersRepository: Repository<User>,
) {}
create(createUserDto: CreateUserDto) {
return 'This action adds a new user';
}
async findAll(): Promise<User[]> {
return await this.usersRepository.find();
}
}
- 在浏览器中输入
http://localhost:3000/react-ant-admin/user/all 可查询到我们插入的所有用户表
/react-ant-admin 是我们设置的统一的接口前缀
