nest js -3 member.service.ts, members.module.ts coding
먼저 members.module의 틀을 작성하도록 하겠습니다.
/*
회원가입시 유저가 입력해야하는 정보
name : 이름 (string)
password : 비밀번호 (string)
email : 이메일 (string)
age : 나이 (number)
위 members.module을 만드는 방법은 2가지가 있습니다.
*/
// 1번째 cless를 이용하여 지정
export class Member_ver1{
id : string; // DB저장시 PR키
name : string;
password : string;
email : string;
age : number;
constructor(
id: string,
name: string,
password: string,
email: string,
age: number
) {
this.id = id;
this.name = name;
this.password = password;
this.email = email;
this.age = age;
}
}
// 2번째 public를 이용하여 지정
export class Member_ver2{
// 위쪽 코드와 동일함
constructor(
public id: string,
public name: string,
public password: string,
public email: string,
public age: number
) {
}
}
2가지 경우를 모두 사용하기 위해 class 명칭을 각각 Member_ver1, ver2로 지정하였습니다. 하지만 2개 모두 id, name, password, email, age를 class으로 지정하는 것은 같습니다.
members.module.ts는 더미데이터를 만들기 위한 준비단계 입니다.
import { Injectable} from "@nestjs/common";
import { Member_ver1, Member_ver2 } from "./members.module";
import { v4 as uuidv4 } from 'uuid'; // PK ID를 만들기 위한 npm
// controller에 method를 제공해 준다.
@Injectable()
export class MembersService{
// 더미데이터 members을 생성한다.
// class Member_ver1기준이며 빈배열로 시작한다.
// private는 members가 내부 method을 통하지 않고서는
// 참조될수 없다.
private members: Member_ver1[] = [];
// Controller에서 회원정보 등록 요청시
insertMember(
name : string,
password : string,
email : string,
age : number,
) : string{
// uuid를 이용하여 PK ID를 생성
const pkId = uuidv4();
// newMember에 새로운 class을 생성후 Client에서 받은 원소들을 입력
const newMember = new Member_ver1(pkId, name, password, email, age);
// Array members에 newMember을 Push하여 배열을 삽입
this.members.push(newMember);
// 문자열 pkId를 return한다.
return pkId;
}
// Controller에서 회원저어보 조회시
getMembers(){
// 모든 회원의 정보를 배열로 return
return [...this.members];
}
}
이제 member.service.ts파일을 수정하였다. 일단 PK ID를 입력하기 위해서 uuid를 사용하였다.
그리고 MembersService내부에 members 배열을 만들어 회원정보를 추가 삭제가 가능하도록 하였다.
insertMemger, getMemgers의 method를 만들어서 새로운 회원이 가입되고 getMembers로 확인할수 있도록 했다.
디테일한 내용은 코드 주석 참고
댓글
댓글 쓰기