nest js -4 member.controller.ts, member.module.ts app.module.ts coding


/* member.controller.ts 파일 */

// Controller를 구성하기 위한 method
// Controller : nest js에서 컨트롤 구현시 필요
// Post : nest js에서 Client의 Post 구현시 필요
// Body : nest js에서 Client의 Body를 추출할때 필요
// Get : nest js에서 Client의 Get 구현시 필요
import { Controller, Post, Body, Get } from '@nestjs/common';
// MembersService method를 참조
import { MembersService } from './member.service';

// Controller의 시작부분
// ('members')일시 url은 root/members으로 요청이 와야
// 아래 Controller이 실행된다.
@Controller('members')
export class MembersController{

// MembersService는 현재 class안에서만 사용할수 있다.
// 동시에 읽기 전용이다.
constructor(private readonly membersService: MembersService) {

}

// GET요청 URL : root/members
@Get()
// 모든 members의 정보를 요청한다.
getAllMembers(){
return {
// Controller에서 membersService의 getMembers method
// 에서 해당값을 요청.
members : this.membersService.getMembers()
}
}

// POST요청 URL : root/members
@Post()
addMember(
// Client의 Body에서 온 정보를 각각 변수로
// 저장
@Body() completeBody: {
name : string,
password : string,
email : string,
age : number
}

/* 위 주석의 방법으로 사용할수 있음
Body에서 받은 변수들은 각각 name, password, email, age이다.
@Body('name') name: string,
@Body('password') password: string,
@Body('email') email: string,
@Body('age') age : number
*/

){
// membersService의 insertMember를 이용하여 신입회원을
// 가입시키고 해당 PkId를 return한다.
const memberPkId = this.membersService.insertMember(
completeBody.name,
completeBody.password,
completeBody.email,
completeBody.age
);

// 새로 가입한 회원의 PkId를 JSON형식으로 return 한다.
return {
id : memberPkId
}
}
} 


위 코드는 Client의 요청을 받고 respone하기 위한 코드입니다. 현재는 2가지 (GET, POST)에 대응하도록 되어있습니다. url은 root/members으로 요청하게 지정되 있습니다. 


/* member.module.ts 파일 */
// module를 생성하는데 필요한 component
import { Module } from '@nestjs/common';

// MembersController, MembersService를
// 각각의 파일에서 import한다.
import { MembersController } from './member.controller';
import { MembersService } from './member.service';

// members모델 생성
@Module({
// 해당 controllers(members컨트롤) 및
// providers(members서비스)를 배열로 입력.
controllers: [MembersController],
providers: [MembersService],
})

export class MembersModule{

}


이제 각 파트들을 Modele로 모아 만들어야 합니다. 


/* app.module.ts 파일 */

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
// AppModule에 추가하려는 MembersModule를 import
import { ProductsModule } from './members/member.module';

@Module({
// MembersModule를 현 AppModule에 추가하였다.
imports: [MembersModule],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}


마지막으로 members모들을 app.module에 import(주석 참)해줍니다.




Postman으로 name, password, email, age를 작성하고 send합니다. respone으로 id(PK)가 온것을 알수 있습니다.



POST와 마찬가지로 GET요청을 하면 POST로 저장된 모든 회원정보들이 표시 됩니다.








댓글

이 블로그의 인기 게시물

Lesson 12_1 프로퍼티 노드(Property Node)

DAQ로 전압 측정하기-2

Lesson 12_2 참조를 이용한 프로퍼티노드(Property Node)