카테고리 없음

Nest.js 회원가입 간단 구현 후 해설하기(2)

찹쌀뗙 2023. 8. 4. 21:00
반응형

auth.controller.ts

1.Controller : 클라이언트의 요청을 받아 회원가입을 수행함

- constructor() : 클래스의 객체를 생성하고 초기화
- private : 클래스 내부에서만 접근 가능한 멤버를 선언하는 접근 지정자
- @Post : HTTP POST 요청을 처리하는 엔드포인트를 정의
- @Body() : HTTP 요청 본문의 데이터를 가져옴
- this : 클래스 내부에서 현재 인스턴스를 참조하는데 사용됨. 클래스의 속성이나 메서드에 접근할때 사용
 

 

auth.service.ts

2.Service : 회원가입 로직을 처리하며, 데이터베이스 연동을 수행함
- @Injectable() : 클래스를 프로바이더로 표시하고 의존성 주입을 가능하게 함.
- @InjectRepository() : 특정 엔터티의 레포지토리를 인스턴스화하고 해당 레포지토리를 주입하는데 사용
- bcrypt 라이브러리 : 비밀번호 해싱을 위한 라이브러리 , 패스워드 보안 강화
- typeorm :서버에서 사용되는 orm 라이브러리, 데이터베이스 작업을 단순화하고, 매핑을 관리함
- Repository : Typeorm의 핵심 개념, 특정 엔터티와 관련된 작업을 수행하는데 사용되는 객체
- userRepository: Repository<User>의 뜻 : User 엔터티와 관련된 작업을 수행할 수 있는 레포지토리의 인스턴스를 선언
- : Promise<User> 뜻 : User 객체를 담은 프로미스를 반환, 비동기 작업이므로 결과를 기다린 후 반환
- await bcrypt.genSalt() 뜻 : 비밀번호 해싱에 사용될 salt를 비동기적으로 생성
- await bcrypt.hash() 뜻 : 주어진 비밀번호를 해시화

auth.module.ts

3.Module : 인증과 관련된 부분을 정의, 서비스와 컨트롤러를 정의함.

- TypeOrmModule : TypeORM을 NestJS와 통합하는데 사용되는 모듈, 데이터베이스 연결과 언터티 관리를 위해 사용됨.
- forFeature() : 특정 모듈 내에서 특정 엔터티를 사용할 수 있게 등록함. 특정 레포지토리와 함께 사용되어 해당 모듈의 컨트롤러와 프로바이더에 주입될 수 있게 함.

app.module.ts

4. app.module : 루트 모듈로 데이터베이스 연결을 담당

- type : 데이터베이스 종류

- 나머지는 본인의 설정대로

- imports에 Auth 모듈추가

반응형