RAWQuery는 데이터베이스에 SQL을 이용하여 직접 쿼리를 요청하는 것이다.
Prisma는 js 객체와 데이터베이스의 관계를 연결해주는 도구다.
@id : 기본키 설정
@default(기본값): 기본 값을 설정한다.
@default(autoincrement()): 기본값을 자동으로 생성하고 하나씩 증가시킴
@map("이름"): 해당 이름으로 js 객체에 매핑(연결)시킨다.
@db.Text: 텍스트 형식으로써 긴 길이의 데이터를 처리한다.
@default(now()): 현재 시간을 기록한다.
@updatedAt: 호출된 시간을 기록한다.
@@map("이름"): 테이블명의 대문자를 그대로 사용할 수 있게 해준다.
간단한 prisma 선언문
Prisma로 연결된 DB를 불러오기 때문에(prisma.posts) await처리를 할 필요가 있고 prisma.posts.create를 통해서 생성한다.
findMany => 다수의 칼럼을 조회한다.
select: { true문인 것들에 대해서만 데이터를 출력한다.} => 그렇기에 보이고 싶지 않은 데이터들은 숨길 수 있다.
하나의 게시글만 조회하면 되므로 findFirst문을 사용하고
여기서 where문을 통해서 postId가 같은 것들만 조회하게 되는데 postId를 객체 구조 분해 할당을 통해서 불러오게 되므로 값이 숫자가 아닌 문자형이기에 앞에 +를 붙여서 숫자형으로 바꿔야한다.
/:postId를 통해서 넘겨온 postId 값을 받아서 findUnique()를 이용하여 해당 게시글이 존재하는지 확인한다.
만약 해당 게시글이 존재하지 않거나 비밀번호가 틀렸을 경우엔 에러를 발생시킨다.
이 두가지 조건을 뛰어넘었다면 해당 post로 업데이트를 하면 되는데, 여기서 중요한건 postId와 password가 같은 것을 업데이트 해야 한다는 것이다.
마찬가지로 지우고 싶은 postId를 params로 받아서 해당 post에 해당하는 아이디를 찾는다.
게시글 수정과 마찬가지로 해당 하는 id를 찾아서 id와 비밀번호를 비교한 후 해당 칼럼을 지우는 방식이다.
이걸 보고 깨달은건 위의 수정에서 update문에 password가 필요없지 않았을까 였다..