Closed wochae closed 1 year ago
생성한 repo를 다른 곳에서도 사용하도록 (Injectable) board.module 에서 import 하기
데이터베이스를 이용하기 때문에 board 객체 속성들이 담겨져 있는 module은 이제 사용하지 않는다. 따라서 컨트롤러와 서비스에 있는 모듈를 수정했고, 모듈 안에 enum 클래스는 해당 파일명을 수정해서 그대로 사용한다.
서비스 단에 레포지토리 주입을 사용 다만 컨트롤러에 서비스 인젝션과 다르게 서비스 안에서 데코레이터 InjectRepository 를 추가로 넣어줘야 한다. private 접근 제어자를 사용하면 암묵적인 주입을 해주는 거 다시 한 번 복기.
typeORM 에서 제공하는 findOne 메소드, async await 를 이용해서 데이터베이스 작업이 끝난 후 결과값을 받을 수 있게 해주기 Promise <> : 반환하는 값이 저 꺾쇠 안에 들어간다. async await 를 통해서 데이터베이스가 완전히 끝난 후에 결과값을 받게 한다. 그렇지 않으면 무결성을 위배하는 값을 반환 받기 때문 callback으로 결과값을 받을 수 있지만 요새 추세가 이 형식을 따른다고 한다. 약간의 첨삭
TypeORM docs findOne에 받는 인자가 number 가 아니라서 받을 수 없다. ( 2021 년에 수강 업로드 ) 따라서 감싸서 줘야한다 findOneBy({id}) 로 수정
데이터베이스 이용해서 게시물 생성 만들기
json 타입으로 받는것도 확인했고 module 에 넣고 repo injectable데코도 해봤다...
config 의 문제였다. entitiy 를 넣어주면 동작된다!
config 에 .ts 를 못 찾는 문법 오류...! 그래서 임시로 엔터티 때려넣으니 된 거였다..!
Get 또한 Id 값으로 number 타입의 값을 넣어주면 가져올 수 있다. 이제 삭제하는 메소드 구현 remove vs delete remove: 무조건 존재하는 아이템을 메소드를 이용해서 지워야함 그렇지 않으면 404 에러 delete : 존재하면 지우고 아니면 아무런 영향이 없다. 따라서 remove 하나 쓰면 두 번 디비 접근을 해야되기 때문에 ( 아이템 유뮤 + 지우기 ) delete 를 사용한다
delete 를 사용할 때 없는 id 를 삭제해달라고 요청해도 affected 반환 말고는 respone 에 반환 되는게 없기 때문에, 식별할 튜플이 존재하지 않는다면 예외 처리하도록 삭제 메소드를 구현함.
이제 업데이트 구현하기