From 6d0c55f0a22d04e3bd69c1a0fdcda4865adfe0d7 Mon Sep 17 00:00:00 2001 From: myh Date: Sun, 19 Nov 2023 18:01:22 +0800 Subject: [PATCH] =?UTF-8?q?Users=20CRUD=20=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app.module.ts | 30 +++++------ .../users.entity.ts => entity/user.entity.ts} | 3 +- src/main.ts | 2 +- src/users/dto/add-users.dto.ts | 6 --- src/users/users-http.module.ts | 11 ---- src/users/users.controller.ts | 50 ++++++++----------- src/users/users.module.ts | 17 ++++--- src/users/users.service.ts | 39 +++++++-------- 8 files changed, 66 insertions(+), 92 deletions(-) rename src/{users/users.entity.ts => entity/user.entity.ts} (81%) delete mode 100644 src/users/dto/add-users.dto.ts delete mode 100644 src/users/users-http.module.ts diff --git a/src/app.module.ts b/src/app.module.ts index 9369d9f..7e3cf19 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -1,27 +1,27 @@ import { Module } from '@nestjs/common'; -import { AppController } from './app.controller'; -import { AppService } from './app.service'; -import { TypeOrmModule } from '@nestjs/typeorm' -import { Users } from './users/users.entity'; - -@Module({ - imports: [], - controllers: [AppController], - providers: [AppService], -}) +import { UserModule } from './users/users.module'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { Users } from './entity/user.entity'; @Module({ imports: [ TypeOrmModule.forRoot({ - type: 'mssql', - host: 'intpointer.com', + type: "mssql", + host: "intpointer.com", port: 1433, - username: 'myh', - password: '20231103#MS_Sql', - database: 'Elm', + username: "myh", + password: "20231103#MS_Sql", + database: "Elm", entities: [Users], synchronize: false, + logging: false, + "options": { + "encrypt": false, + "enableArithAbort": true + } }), + UserModule, ], }) + export class AppModule { } \ No newline at end of file diff --git a/src/users/users.entity.ts b/src/entity/user.entity.ts similarity index 81% rename from src/users/users.entity.ts rename to src/entity/user.entity.ts index 9d3b427..be33e3d 100644 --- a/src/users/users.entity.ts +++ b/src/entity/user.entity.ts @@ -1,4 +1,4 @@ -import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm'; +import { Entity, Column, PrimaryGeneratedColumn, Table } from 'typeorm'; @Entity() export class Users { @@ -16,5 +16,4 @@ export class Users { @Column('text') address: string - } \ No newline at end of file diff --git a/src/main.ts b/src/main.ts index 41de388..f13aa19 100644 --- a/src/main.ts +++ b/src/main.ts @@ -9,7 +9,7 @@ async function bootstrap() { app.setBaseViewsDir(join(__dirname, '..', 'views')); app.setViewEngine('hbs'); - app.listen(9000, '0.0.0.0', () => { + await app.listen(9000, '0.0.0.0', () => { console.log(`Server start on http://0.0.0.0:9000`); }); } diff --git a/src/users/dto/add-users.dto.ts b/src/users/dto/add-users.dto.ts deleted file mode 100644 index 39f9d4e..0000000 --- a/src/users/dto/add-users.dto.ts +++ /dev/null @@ -1,6 +0,0 @@ -export class AddUsersDto { - name: string - sex: string - phoneNumber: string - address: string -} \ No newline at end of file diff --git a/src/users/users-http.module.ts b/src/users/users-http.module.ts deleted file mode 100644 index 3714772..0000000 --- a/src/users/users-http.module.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Module } from '@nestjs/common'; -import { UsersModule } from './users.module'; -import { UsersService } from './users.service'; -import { UsersController } from './users.controller'; - -@Module({ - imports: [UsersModule], - providers: [UsersService], - controllers: [UsersController] -}) -export class UserHttpModule {} diff --git a/src/users/users.controller.ts b/src/users/users.controller.ts index 25fc3dc..8e894cc 100644 --- a/src/users/users.controller.ts +++ b/src/users/users.controller.ts @@ -1,39 +1,33 @@ -import { - Body, - Controller, - Delete, - Get, - Param, - Post, - ParseIntPipe, - Render, -} from '@nestjs/common'; -import { UsersService } from "./users.service"; -import { Users } from './users.entity'; -import { AddUsersDto } from './dto/add-users.dto' +import { Body, Controller, Delete, Get, Injectable, Param, Patch, Post, Put } from '@nestjs/common'; +import { UserService } from 'src/users/users.service'; +import { Users } from '../entity/user.entity'; -@Controller('Users') -export class UsersController { - constructor(private readonly usersService: UsersService) { } +@Controller('users') +export class UserController { + constructor(private readonly userService: UserService) { } - @Post() - add(@Body() addUsersDto: AddUsersDto): Promise { - return this.usersService.add(addUsersDto); + @Get("/findAll") + async findAll(): Promise { + return await this.userService.findAll(); } - @Get() - findAll(): Promise { - return this.usersService.findAll(); + @Get("/findById/:id") + async findById(@Param('id') id: number): Promise { + return await this.userService.findOne(id); } - @Get(':id') - findOne(@Param('id', ParseIntPipe) id: number): Promise { - return this.usersService.findOne(id); + @Delete("/remove/:id") + async remove(@Param('id') id: number): Promise { + await this.userService.remove(id); } - @Delete(':id') - delete(@Param('id') id: number): Promise { - return this.usersService.delete(id); + @Post("/save") + async save(@Body() user: Users): Promise { + return await this.userService.save(user) } + @Put("/update") + async update(@Param('id') id: number, @Body() user: Users): Promise { + this.userService.update(id, user); + } } \ No newline at end of file diff --git a/src/users/users.module.ts b/src/users/users.module.ts index 2fa9d52..5e120fa 100644 --- a/src/users/users.module.ts +++ b/src/users/users.module.ts @@ -1,12 +1,13 @@ import { Module } from '@nestjs/common'; +import { Users } from 'src/entity/user.entity'; +import { UserService } from 'src/users/users.service'; import { TypeOrmModule } from '@nestjs/typeorm'; -import { UsersService } from './users.service'; -import { UsersController } from './users.controller'; -import { Users } from './users.entity'; +import { UserController } from 'src/users/users.controller'; + @Module({ - imports: [TypeOrmModule.forFeature([Users])], - providers: [UsersService], - controllers: [UsersController], -}) -export class UsersModule {} \ No newline at end of file + imports: [TypeOrmModule.forFeature([Users])], + providers: [UserService], + controllers: [UserController], + }) + export class UserModule {} \ No newline at end of file diff --git a/src/users/users.service.ts b/src/users/users.service.ts index a27d815..3cd78fd 100644 --- a/src/users/users.service.ts +++ b/src/users/users.service.ts @@ -1,34 +1,31 @@ -import { Injectable } from '@nestjs/common'; -import { InjectRepository } from '@nestjs/typeorm'; -import { Repository } from 'typeorm'; -import { Users } from './users.entity'; -import { AddUsersDto } from './dto/add-users.dto'; +import { Users } from "src/entity/user.entity"; +import { Injectable } from "@nestjs/common"; +import { InjectRepository } from "@nestjs/typeorm"; +import { FindOneOptions, Repository } from "typeorm"; @Injectable() -export class UsersService { +export class UserService { constructor( @InjectRepository(Users) - private usersRepository: Repository, - ) { } + private userRepository: Repository) { } - add(addUsersDto: AddUsersDto): Promise { - const users = new Users(); - users.name = addUsersDto.name; - users.sex = addUsersDto.sex; - users.phoneNUmber = addUsersDto.phoneNumber; - users.address = addUsersDto.phoneNumber; - return this.usersRepository.save(users); + async findAll(): Promise { + return await this.userRepository.find(); } - findAll(): Promise { - return this.usersRepository.find(); + async findOne(id: number): Promise { + return await this.userRepository.findOne(id) } - findOne(id: number): Promise { - return this.usersRepository.findOneBy({ id }); + async remove(id: number): Promise { + await this.userRepository.delete(id) } - async delete(id: number): Promise { - await this.usersRepository.delete(id); + async save(user: Users): Promise { + return await this.userRepository.save(user) + } + + async update(id: number, user: Users): Promise { + await this.userRepository.update(id, user); } } \ No newline at end of file