[Node+MongoDB]상세페이지 제작2 (링크, 예외처리)

김나나·2024년 8월 26일

Node.js

목록 보기
14/50

앞전에 나는 따로 id변수를 더 만들었지만,
그냥 한 번에 보낼 수도 있다.

그냥 바로 요청.params.id를 넣어도 동작은 동일하게 한다!

그럼 이제 게시물 제목을 누르면 해당하는 글 id로 이동하는 "링크"를 만들어주자!


✨a태그를 통한 링크

list.ejs파일로 돌아가 글 제목부분에 a태그를 넣어주자

<a href="/detail/<%= 글목록[i]._id %>">

코드 보면 알겠지만.. 여기서도 <%= %> 내부에 넣어주면 잘 동작한다!


✨예외상황 처리

만약 존재하는 글 번호가 아닌 다른 번호를 입력하려 하거나 하는 경우!!
앞의 포스팅에서도 작성하였으나,
if문 혹은 try/catch를 사용하여 예외처리를 해줄 수 있다.

현재 server.js의 detail페이지 get 코드

이런 상태에서 try / catch를 추가한 모습

정상적으로 동작하는 경우 try 구문 내부에 있는 코드를 실행시키고, 오류가 발생한 경우 catch구문의 코드를 실행시켜준다.
앞에서 status(500)은 서버 문제를 의미하여 작성해주었고,
이번에 status(400)은 유저 문제를 의미하여 넣어주었다.(정확하게는 404 넣어주면 된다고 함)


url에 이상한 값을 집어넣고 테스트를 해보니 catch에 잘 걸러지는 모습이다.

+) _id의 길이는 맞는데 값이 틀렸을 경우에는 null을 받아오게 되는데, 이 경우에는 try/catch만으로 예외 처리가 되지 않기 때문에 아래처럼 if문을 추가해주면 좋다.


try 내부에 if문 추가 후 다시 테스트를 해보자

예외 처리가 잘 먹힌 모습을 확인할 수 있다.

profile
10분의 정리로 10시간을 아낄 수 있다는 마음으로 글을 작성하고 있습니다💕

0개의 댓글