--no-aduit 옵션기억 (이거안쓰고하니 자꾸에러가.. )
프로젝트 생성할때 Npm 말고 npx? 이걸로 햇더니 생성됨. 환경은 맥북
controller 와 service를 생성해줌
nestJsCli 사용해서하면
자동적으로 패키지랑 ts 파일을 생성해줌
자동으로 모듈 파일에 셋팅이 된다.
서비스를 등록할때 이런 식 으로 생성자
private 으로 서비스를 등록해준다.
컨트롤러에서 많은 것들을 필요함, 서비스 , 헬퍼 , 팩토리등 사용 할 수 있게 넣어서 사용 할수 있게하는것
종속성 주입! 스프링이랑 비슷한 개념인듯.
들여쓰기? 이런 규칙이있는듯 잘 맞춰서 작성해줘야된다
시작해보자
npm run start:dev
스프링과 구조가 유사하다..
모델은 class 나 interface 둘다 가능
리턴 타입은 항상 명시해 두자.
함수 선언해주고.. 등록할 변수들을 넣어준다.
현재 디비랑 연동된게 아니기때문에 uuid
네스트 JS body에서 정보 가져오기.
테스트 해보기
파라미터보단 .. DTO로 관리하는게 좋다
마지막 서비스 코드에서 저렇게 변수명을 나열하고 Dto 매핑을 해주면 알아서 되는 듯?
참고자료
개인적인 변경
파이프를 넣어줌으로서 예외가 발생한다.
npm install class-validator class-transformer --save
dto에 적용해주고.. 그다음은.
컨트롤러에 파이프 명시 ( 핸들러 레벨에서 )
이러한 값이 없는데.. 예외가 안터진다.
평소사용하는 ' 가 아닌 이걸로..
올바른 아이디를 주지않아서..
작동함
https://postgresapp.com/downloads.html
다운로드
https://www.pgadmin.org/download/
서버 생성
DB 생성
npm install pg typeorm @nestjs/typeorm --save
환경 작성
root 모듈에 추가 .
JPA 랑 비슷한 듯? entity 생성해서 테이블로 변환시키는 것..
Spring Data JPA 랑 비슷 한거같다
module 에 임포트 해주고..
repository 만들어주기
controller , service 주석처리로 일단 .
기존 Model 사용부분은 - > entity로교체
기존 모델부분 enum으로 변경
빨간줄 부분 전부 수정
서비스에 레파지토리 인젝션 .
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 따로 받아야 하지만 나는 그냥
객체하나 생성해서 그걸로 바디에 넘겨서 받음