Initial commit

This commit is contained in:
myh
2023-11-13 15:31:26 +08:00
commit 9352e2fa16
26 changed files with 14781 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
import { Test, TestingModule } from '@nestjs/testing';
import { AppController } from './app.controller';
import { AppService } from './app.service';
describe('AppController', () => {
let app: TestingModule;
beforeAll(async () => {
app = await Test.createTestingModule({
controllers: [AppController],
providers: [AppService],
}).compile();
});
describe('getHello', () => {
it('should return "Hello World!"', () => {
const appController = app.get<AppController>(AppController);
expect(appController.getHello()).toBe('Hello World!');
});
});
});

18
src/app.controller.ts Normal file
View File

@@ -0,0 +1,18 @@
import { Controller, Get, Render } from '@nestjs/common';
import { AppService } from './app.service';
@Controller()
export class AppController {
getHello(): any {
throw new Error('Method not implemented.');
}
constructor(private readonly appService: AppService) { }
@Get()
@Render('index')
root() {
return {
message: 'Serverless Framework',
};
}
}

27
src/app.module.ts Normal file
View File

@@ -0,0 +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],
})
@Module({
imports: [
TypeOrmModule.forRoot({
type: 'mssql',
host: 'intpointer.com',
port: 1433,
username: 'myh',
password: '20231103#MS_Sql',
database: 'Elm',
entities: [Users],
synchronize: false,
}),
],
})
export class AppModule { }

8
src/app.service.ts Normal file
View File

@@ -0,0 +1,8 @@
import { Injectable } from '@nestjs/common';
@Injectable()
export class AppService {
getHello(): string {
return 'Hello World!';
}
}

16
src/main.ts Normal file
View File

@@ -0,0 +1,16 @@
import { NestFactory } from '@nestjs/core';
import { NestExpressApplication } from '@nestjs/platform-express'
import { join } from 'path';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create<NestExpressApplication>(AppModule);
app.enableCors();
app.setBaseViewsDir(join(__dirname, '..', 'views'));
app.setViewEngine('hbs');
app.listen(9000, '0.0.0.0', () => {
console.log(`Server start on http://0.0.0.0:9000`);
});
}
bootstrap();

View File

@@ -0,0 +1,6 @@
export class AddUsersDto {
name: string
sex: string
phoneNumber: string
address: string
}

View File

@@ -0,0 +1,11 @@
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 {}

View File

@@ -0,0 +1,39 @@
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'
@Controller('Users')
export class UsersController {
constructor(private readonly usersService: UsersService) { }
@Post()
add(@Body() addUsersDto: AddUsersDto): Promise<Users> {
return this.usersService.add(addUsersDto);
}
@Get()
findAll(): Promise<Users[]> {
return this.usersService.findAll();
}
@Get(':id')
findOne(@Param('id', ParseIntPipe) id: number): Promise<Users> {
return this.usersService.findOne(id);
}
@Delete(':id')
delete(@Param('id') id: number): Promise<void> {
return this.usersService.delete(id);
}
}

20
src/users/users.entity.ts Normal file
View File

@@ -0,0 +1,20 @@
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity()
export class Users {
@PrimaryGeneratedColumn()
id: number;
@Column({ type: 'nvarchar', length: 20 })
name: string;
@Column({ type: 'nvarchar', length: 2 })
sex: string;
@Column({ type: 'varchar', length: 13 })
phoneNUmber: string;
@Column('text')
address: string
}

12
src/users/users.module.ts Normal file
View File

@@ -0,0 +1,12 @@
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { UsersService } from './users.service';
import { UsersController } from './users.controller';
import { Users } from './users.entity';
@Module({
imports: [TypeOrmModule.forFeature([Users])],
providers: [UsersService],
controllers: [UsersController],
})
export class UsersModule {}

View File

@@ -0,0 +1,34 @@
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';
@Injectable()
export class UsersService {
constructor(
@InjectRepository(Users)
private usersRepository: Repository<Users>,
) { }
add(addUsersDto: AddUsersDto): Promise<Users> {
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);
}
findAll(): Promise<Users[]> {
return this.usersRepository.find();
}
findOne(id: number): Promise<Users | null> {
return this.usersRepository.findOneBy({ id });
}
async delete(id: number): Promise<void> {
await this.usersRepository.delete(id);
}
}