nest.js

nest.js

[고스락 티켓 2.0] nestjs transaction with repository

typeorm 0.3.7 버전을 기준으로 작성중이다 고스락 티켓 예매 프로젝트(이하 고티켓 ) 에선 repostiory를 아예 파일로 따로 만들어서  Repository 를 주입받아서 새로운 Repository로 만들어서 사용중이다. 이에 맞춰서 공식문서랑은 조금 다른 방식으로 트랜잭션을 풀어낸 방법을 공유하고자한다. 이글을 통해 얻어갈 수 있는것들 트랜잭션 시작한 쿼리러너로 Repository를 받아오는 방법 콜백이나 , 엔티티매니저가 아닌 Repository 로 트랜잭션시 사용하기 이 블로그의 내용은 고스락 티켓 예매 프로젝트에서 사용중인 소스이다 [고스락 티켓 2.0] 두번째 프로젝트는 어떻게 달라졌을까요? 우선 고스락 티켓 예매 프로젝트의 목적은 기존 종이티켓으로 표를 팔러다니던 OB시절에서 정..

nest.js

[고스락 티켓 2.0] nestjs redis forRootAsync 모듈 만들기

위 사진처럼 useFactory를 사용해서 configSerivce를 넘겨줘서 모듈을 세팅하는 경우가있다. 환경변수들을 configService를 이용해서 의존성 주입시키는게 joi 통해서도 밸리데이션 거친 값이기도하니, 모듈설정할 때 많이 쓰는 패턴이다. 고스락 티켓 예매 프로젝트 ( 이하 고티켓 ) 에서는 redis를 인증번호 3분 ttl 저장이나 , bull js 큐로 사용중에 있는데 특히 인증번호 저장하고 꺼내오는 로직이 필요해서 redis 를 관리하는 모듈을 만들게되었는데 하다보니 다른 프로젝트에서도 쓸일이 있을것같아 모듈을 임포트할때 forRootAsync 처럼 configSerivce 나 다른 설정값들을 줘서 동적으로 설정할 수있는 모듈을 만들어 볼려고 한다. 만들려고 진짜 많이 찾아봤는데 ..

nest.js

[고스락 티켓 2.0] nest js ValidationError custom

nest js 에서는 검증도중에 오류가 발생하면 400번 ValidationError를 발생시키는데 { "statusCode": 400, "error": "Bad Request", "message": ["email must be an email"] } 이런 형식으로 나온다. 사실뭐 그냥 써도 상관없지만 ( 보통 클라단에서 다막기 때문 ) 클라이언트가 보낸 필드중에 어느부분이 오류인지 알려면 검증 오류가 난 필드가 무엇이고, 그필드에 해당하는 오류내용이 무엇인지 아래와같은 형식으로 기술을 할려고 한다. ( code 부분은 다른 HttpExcepiton 을 상속받은 에러들에서 에러코드를 나타내기 위해 만든것인데 , 공통으로 맞춰줄려고 ValidationError 라고 적었다 ) 이글을 통해서 얻어갈 수 있는..

nest.js

[고스락 티켓 2.0] nest js 유저 role 기반 api 인가

어노테이션과 메타데이터를 이용해서 , 유저가 Admin인지 일반 User인지에따른 api 인가를 설정해보도록 하자. 이글을 통해서 얻어갈 수 있는점 nestjs SetMetadata 를 통해서 어노테이션과, 메타데이터 설정 가드에서 accessToken의 유저정보를 확인후에 접근 제한 하기 getAllAndOverride 메서드를 통해 클래스 레벨과 메소드 레벨 중 메소드 레벨에 우선순위두기 [고스락 티켓 2.0] 두번째 프로젝트는 어떻게 달라졌을까요? 우선 고스락 티켓 예매 프로젝트의 목적은 기존 종이티켓으로 표를 팔러다니던 OB시절에서 정산의 어려움이나 공연 홍보의 어려움 또한 비대면 시대로 돌입하면서 학교에 모이는 인원이 적다보 devnm.tistory.com 이 글의 내용들은 고스락 티켓예매 프로..

ImNM
'nest.js' 카테고리의 글 목록 (2 Page)