만약 글안적고 공백 보내거나 이상한 글 작성하면?
=> DB에 바로 저장하지 말고 서버에서 글 검사한 후 DB에 저장하자
(3 tier architecture)
서버 코드
/url과 method를 사용하여 분류한다.
method에 대해서 알아보자
GET => 유저에게 데이터 전송시
POST => 새로운 데이터 추가시
PUT, PATCH => 데이터 수정시
DELETE => 데이터 삭제
엄격하게 지킬 필요는 없다.
next.js에서 서버 기능 만드는법
app폴더 > api폴더 > .js
또는
pages폴더 > api폴더 > .js 방법이 있다.
두 번째 방법이 더 좋다.
누가 /api/test로 요청을 하게 되면 test.js파일이 실행된다.
잘 되는지 테스트 하기위해서 간단하게 GET방식으로 요청해보자
잘 출력되는 것을 볼 수 있다.
하지만 무한으로 대기 상태인 것을 볼 수 있다. 왜냐하면 서버는 응답을 하지 않았기 때문에 응답을 받을 때 까지 기다리고 있는 것이다.
응답이 온 것을 볼 수 있다.
status에 대해서 알아보자
처리 성공시 200
에러가 나면(서버잘못) 500
유저 잘못 400
POST로 데이터를 전송해보자
글 작성 페이지를 위해 write > page.js파일을 만들고
form 태그를 만들자. 서버로 전송되기 위해서 input태그에는 name속성을 반드시 추가해주어야 하고 submit버튼을 누르게 되면 /api/test경로로 POST요청을 보내게 된다.
이제 서버에서 응답해주는 코드를 작성해주면 된다.
req.body를 하게 되면 input태그에 값이 json형식으로 저장되어 있다. 이것을 바로 insert해준다.
잘 저장된 것을 볼 수 있다.
list페이지로 redirect 시키고 싶을 때 res.redirect(302,'/list')를 하면 된다.
하지만 만약 빈칸을 전송했을 때에도 저장이 된다. 빈칸일 때를 처리하는 로직을 만들어 보자
예외처리가 잘 된다.
만약 DB 예외처리같은 경우 try catch를 사용하면 된다.
직접 DB에 입출력하는 것이 아니라 서버에서 검사하고 대신 입출력하는 쪽으로 개발하자