nestJs 간단정리

존스노우·2022년 4월 4일
0

nestJS

목록 보기
1/1

프로젝트 생성 ->

--no-aduit 옵션기억 (이거안쓰고하니 자꾸에러가.. )

프로젝트 생성할때 Npm 말고 npx? 이걸로 햇더니 생성됨. 환경은 맥북

controller , service 생성

controller 와 service를 생성해줌

nestJsCli 사용해서하면

자동적으로 패키지랑 ts 파일을 생성해줌

자동으로 모듈 파일에 셋팅이 된다.

서비스를 등록할때 이런 식 으로 생성자

private 으로 서비스를 등록해준다.

컨트롤러에서 많은 것들을 필요함, 서비스 , 헬퍼 , 팩토리등 사용 할 수 있게 넣어서 사용 할수 있게하는것
종속성 주입! 스프링이랑 비슷한 개념인듯.

모든 게시물을 가져오는 서비스 만들기 (CRUD -> R)

들여쓰기? 이런 규칙이있는듯 잘 맞춰서 작성해줘야된다

시작해보자
npm run start:dev

스프링과 구조가 유사하다..

Board Model 정의 하기

모델은 class 나 interface 둘다 가능

리턴 타입은 항상 명시해 두자.

게시물 생성 기능 만들기 (service)

함수 선언해주고.. 등록할 변수들을 넣어준다.
현재 디비랑 연동된게 아니기때문에 uuid

게시물 생성 기능 만들기 (Controller)

네스트 JS body에서 정보 가져오기.

테스트 해보기

Data Transfer Object(DTO)

파라미터보단 .. DTO로 관리하는게 좋다

게시물 생성을 위한 DTO

마지막 서비스 코드에서 저렇게 변수명을 나열하고 Dto 매핑을 해주면 알아서 되는 듯?

ID로 특정 게시물 가져오기

참고자료

ID로 특정 게시물 삭제

특정 게시물 상태 업데이트

개인적인 변경

NestJs Pipes

파이프를 넣어줌으로서 예외가 발생한다.

파이프를 이용한 유효성 체크

npm install class-validator class-transformer --save

dto에 적용해주고.. 그다음은.

컨트롤러에 파이프 명시 ( 핸들러 레벨에서 )

특정 게시물을 찾을 때 없는 경우 결과값 처리

이러한 값이 없는데.. 예외가 안터진다.

평소사용하는 ' 가 아닌 이걸로..

없는 게시물을 지우려 할 때 결과 값 처리

파이프를 이용한 유효성 체크

올바른 아이디를 주지않아서..

작동함

PostGresSql 설치

https://postgresapp.com/downloads.html

다운로드

https://www.pgadmin.org/download/

서버 생성

DB 생성

TypeORM

npm install pg typeorm @nestjs/typeorm --save

환경 작성

root 모듈에 추가 .

게시물을 위한 엔티티

JPA 랑 비슷한 듯? entity 생성해서 테이블로 변환시키는 것..

Repository 생성하기

Spring Data JPA 랑 비슷 한거같다

module 에 임포트 해주고..

repository 만들어주기

데이터베이스를 위한 소스코드 정리

controller , service 주석처리로 일단 .

기존 Model 사용부분은 - > entity로교체

기존 모델부분 enum으로 변경

빨간줄 부분 전부 수정

ID를 이용해서 특정 게시물 가져오기

서비스에 레파지토리 인젝션 .

async 요청을 주자마자 -> 처리되는 시간이 있다 -> 다 처리가 되는 값을 받는다.
async 없으면? -> 처리가 되지 않는 상태에서 값을 받아버림,

error

TypeError: Cannot set property meadata of repositoy which has only a getter

typeorm 0.3 버전에서 는 지원되지 않기 때문에.
아래 명령어를 통해 0.2 v 을 설치하고 실행해주자

npm install typeorm@0.2

게시물 생성하기

레파지토리로 로직 옴겨주기.

게시물 삭제하기

게시물 상태 업데이트


원래는 ID , status 따로 받아야 하지만 나는 그냥
객체하나 생성해서 그걸로 바디에 넘겨서 받음

모든 게시물 가져오기

profile
어제의 나보다 한걸음 더

0개의 댓글