TIL/내일배움캠프 6주차

[내배캠 TIL ] 6주차 수요일 :: 에러핸들링

두캔두잇 2023. 6. 22. 14:39

오늘은 과제를 하면서 유효성 검사를 했다.

에러핸들링이라고 하는데 많은 검사를 하다보니 코드도 길어지고 상황을 추가하다보니 

헷갈리고 어려워지는것 같다.

 

먼저 Try~ Catch문으로 에러상황 들을 추가하였다.

 // 에러핸들링
  try {
    if (!req.body) return res.status(412).json({ errorMessage: "데이터형식이 올바르지 않습니다." }); // 요청한 body값이 없으면
    if (!title) return res.status(412).json({ errorMessage: "게시글 제목의 형식이 일치하지 않습니다." }); // title값이 없으면
    if (!content) return res.status(412).json({ errorMessage: "게시글 내용의 형식이 일치하지 않습니다." }); // content값이 없으면
    await Post.create({ userId: userId, nickname: Nickname, content, title }); // 비동기 -> Post미들웨어를 통해 객체안의 값들을 create 생성
    res.status(201).json({ Message: " 게시글 작성 성공" });

    
  } catch (err) {
    return res.status(400).json({ errorMessage: "게시글 작성에 실패하였습니다." });
  }
});

이렇게 작성하였다.

에러핸들링을 하면서 새롭게 알게 된 점이 있는데  보통 if문을 쓰고 뒤에 return을 하는데 코드를 보면

if(조건) {
  res.status(200).json("메세지")
}return

이렇게 쓸수 있는데 중괄호를 빼고 return을 조건 뒤로 붙이면

if(조건) return res.status(200).json("메세지")

 한줄로 나와서 가독성도 좋고 코드도 깔끔해져서 알아보기도 좋은것 같다.

앞으로 유효성검사를 할때는 이렇게 작성해야겠다.

그리고 참고로 catch문 뒤에는 모든오류를 잡기위해 console 해야하기 때문에 저렇게 작성해야한다.