wochae / nestj

nestj
0 stars 0 forks source link

[Feat] : Entity 와 Database를 이용한 CRUD #6

Closed wochae closed 1 year ago

wochae commented 1 year ago
wochae commented 1 year ago

생성한 repo를 다른 곳에서도 사용하도록 (Injectable) board.module 에서 import 하기

wochae commented 1 year ago

데이터베이스를 이용하기 때문에 board 객체 속성들이 담겨져 있는 module은 이제 사용하지 않는다. 따라서 컨트롤러와 서비스에 있는 모듈를 수정했고, 모듈 안에 enum 클래스는 해당 파일명을 수정해서 그대로 사용한다.

wochae commented 1 year ago

서비스 단에 레포지토리 주입을 사용 다만 컨트롤러에 서비스 인젝션과 다르게 서비스 안에서 데코레이터 InjectRepository 를 추가로 넣어줘야 한다. private 접근 제어자를 사용하면 암묵적인 주입을 해주는 거 다시 한 번 복기.

wochae commented 1 year ago

typeORM 에서 제공하는 findOne 메소드, async await 를 이용해서 데이터베이스 작업이 끝난 후 결과값을 받을 수 있게 해주기 Promise <> : 반환하는 값이 저 꺾쇠 안에 들어간다. async await 를 통해서 데이터베이스가 완전히 끝난 후에 결과값을 받게 한다. 그렇지 않으면 무결성을 위배하는 값을 반환 받기 때문 callback으로 결과값을 받을 수 있지만 요새 추세가 이 형식을 따른다고 한다. 약간의 첨삭

wochae commented 1 year ago

TypeORM docs findOne에 받는 인자가 number 가 아니라서 받을 수 없다. ( 2021 년에 수강 업로드 ) 따라서 감싸서 줘야한다 findOneBy({id}) 로 수정

wochae commented 1 year ago

데이터베이스 이용해서 게시물 생성 만들기

wochae commented 1 year ago

json 타입으로 받는것도 확인했고 module 에 넣고 repo injectable데코도 해봤다...

wochae commented 1 year ago

config 의 문제였다. entitiy 를 넣어주면 동작된다!

wochae commented 1 year ago

config 에 .ts 를 못 찾는 문법 오류...! 그래서 임시로 엔터티 때려넣으니 된 거였다..!

wochae commented 1 year ago

Get 또한 Id 값으로 number 타입의 값을 넣어주면 가져올 수 있다. 이제 삭제하는 메소드 구현 remove vs delete remove: 무조건 존재하는 아이템을 메소드를 이용해서 지워야함 그렇지 않으면 404 에러 delete : 존재하면 지우고 아니면 아무런 영향이 없다. 따라서 remove 하나 쓰면 두 번 디비 접근을 해야되기 때문에 ( 아이템 유뮤 + 지우기 ) delete 를 사용한다

wochae commented 1 year ago

delete 를 사용할 때 없는 id 를 삭제해달라고 요청해도 affected 반환 말고는 respone 에 반환 되는게 없기 때문에, 식별할 튜플이 존재하지 않는다면 예외 처리하도록 삭제 메소드를 구현함.

wochae commented 1 year ago

이제 업데이트 구현하기

wochae commented 1 year ago

crud 마지막, 다 가져오기 find 함수가 인자를 찾는데 아무것도 없다면 다 가져오는 함수로 정의되어 있음 프로미스 한 번 읽어보기 왜 타입으로 지정하는지에 대한 설명