이전 포스팅에는 단순히 collection과 insertOne을 사용하여 DB에 넘겨주는 것 까지만 구현을 했었는데,
공부를 하며 추가된 코드가 있어 아래에 작성해보았다.
우선 추가된 부분에만 밑줄을 추가하였다.

async&await은 앞서 포스팅 했던 적이 있어 더 설명하지 않고, 새로운 .redirect()에 대한 부분은,
요청에 대한 응답으로 사용자에게 요청이 처리되면 보여주고자 하는 페이지가 있다면 사용해줄 수 있다.
만약, 응답.redirect('/list')라고 작성해준다면
요청이 처리된 이후에 다시 사용자에게는 list 페이지를 보여줄 수 있는 것.
만약 위처럼 게시글을 작성하게 되었는데,
아무것도 작성하지 않고 넘기거나 하는 경우에는
"예외처리"라는 것을 하여 DB에서 저장을 시키기 전에 검사를 해줄 수 있는 방법이다.
이렇게 검사를 하려는 경우에는 if / else문을 사용해주면 쉽게?? 처리할 수 있다!
if else문은 어떤 언어라도 동일하게 처리하는 것 같다..
if(조건식){
조건이 참인 경우 실행할 코드
} else {
그 외의 경우 실행할 코드
}

이런 식으로 if/else문을 사용할 수 있겠다.
빈 데이터가 넘어갔을 때, 콘솔에 찍힌 결과로
{ title: '', content: '' } 이렇게 출력되니
결과적으로 if else문에

if (요청.body.title == '') {
응답.send("제목을 입력해주세요.");
} else {
await db.collection('post').insertOne({
title: 요청.body.title,
content: 요청.body.content,
});
응답.redirect('/list');
}
이렇게 작성해주면 title이 비어있는 경우에는 DB로 저장을 시키지 않고 예외처리를 해줄 수 있게 된다.
try {
여기 코드 실행해보고
} catch(e){
에러나면 여기 코드 실행
}
try catch문을 사용하여 에러가 생긴 경우도 처리를 해놔주는 편이 안전하다.
최종적으로 try catch문까지 사용하면

이런 식으로 코드가 짜이게 된다.
에러가 발생했을 때, 어떤 에러인지 확인하기 위해
console.log(e)를 사용하여 콘솔창에 에러메시지를 출력해주고, 응답.send()를 사용하여 에러가 발생했을 경우에 응답을 해주는데, 이 때 서버 오류임을 알아보기 쉽게 해주기 위해 .status(500)을 넣어주었다.
- 코드를 작성할 땐 한글로 기능을 설명해두고 코드로 번역
<form>태그를 사용하면 POST 요청 가능- 서버에서
요청.body사용할 수 있음- DB에 document 발행은
.insertOne()사용- 유저가 보낸 데이터 검사는
if else- 에러상황 처리하고 싶은 경우
try catch