My Dream Being Visualized

NestJS 새로운 모듈 추가 (feat. auth) 본문

Programming/NestJS

NestJS 새로운 모듈 추가 (feat. auth)

마틴킴 2021. 11. 6. 19:22
728x90

 개인 공부를 위한 공간입니다. 틀린 부분 지적해주시면 감사하겠습니다 (_ _)

 

모듈내 필요한 기능

  • 회원가입
  • 로그인
  • 회원인증

기능에 따른 파일 구조

  • Controller
  • Service
  • Entity
  • Repository
  • JWT, Passport

모듈 및 파일 생성

nest g module auth

설명: auth와 관련된 기능을 담당할 모든 파일을 위한 모듈 & 폴더 생성

생성: auth -> auth.module.ts

기능: imports, exports, controllers, providers 명시 및 관리

nest g controller auth --no-spec

설명: auth 모듈 내 컨트롤러 생성 / --no-spec 옵션은 테스트 파일을 생성하지 않겠다라는 의미

생성: auth.controller.ts 파일

기능: 서버 API 라우팅 및 명시 및 API 결과값 전달

nest g service auth --no-spec

설명: auth 모듈 내 서비스 생성 / --no-spec 옵션은 테스트 파일을 생성하지 않겠다라는 의미

생성: auth.service.ts

기능: API 내 처리해야 할 로직 명시 및 controller로 전달

user.entity.ts 파일 생성
필요한 컬럼 + 타입 명시

설명: auth 모듈 내 직접 생성해주셔야 합니다.

생성: user.entity.ts 파일

기능: 유저 인증에 필요한 유저 데이터를 명시 및 가져올 Entity 생성

user.repository.ts 파일 생성
auth module에서 imports 안에 repository 추가

설명: auth 모듈 내 직접 생성해주셔야 합니다.

생성: user.repository.ts 파일

기능: 데이터베이스와의 직접적인 query 및 dto(data transfer object) 활용 및 service로 전달

// service내 repository inject
constructor (
  @InjectRepository(UserRepository)
  private userRepository: UserRepository,
) {}

설명: auth.service.ts 내 직접 inject 하셔야 합니다.

생성: constructor 내 inject 코드

기능: service 내에서 repository에서 생성한 함수 사용 가능

 

auth 폴더 구조 결과물

 

테스트 관련된 파일은 향후에 공부해서 다뤄보겠습니다.

또한, nest-cli 활용대신 직접 생성하셔도 됩니다. 단지 일일이 추가 해줘야 하는 귀찮음 추가

 

 

참고: https://www.youtube.com/watch?v=3JminDpCJNE&t=6629s&ab_channel=JohnAhn 

 

'Programming > NestJS' 카테고리의 다른 글

유저 비밀번호 암호화 (feat. bcryptjs)  (0) 2021.11.06
TypeORM 이란?  (0) 2021.11.06
NestJS 프로젝트 시작 전 설정  (0) 2021.10.30
NestJS에 대하여  (0) 2021.10.30