[포트폴리안] node.js에서 예외처리 깔끔하게 하기
문제 발생
포트폴리안은 나의 첫 node.js 프로젝트이다.
비동기 코드를 작성하는데 익숙하지 않아서 수많은 await과 try-catch문을 사용했다.
이렇게 되니 생각하지 못한 오류가 발생했을 때 response를 제대로 반환하지 못하는 상황도 생겼고
리팩토링 해야하는 코드(보기 어려운 스파게티 코드)가 점점 쌓이고 있었다..
스파게티 코드가 쌓이다 보니 기능 추가에 한계를 느꼈고 본격적인 채팅기능 구현에 앞서
예외처리를 깔끔하게 해 개발할 맛이 나는 코드로 바꾸고자 한다!!
현재 나의 코드
let getUserInfo = async (req,res) => {
let verifyTokenRes = await authServiceInstance.verifyAccessToken(req.headers);
if (verifyTokenRes === null || verifyTokenRes.code < 0)
{
res.status(401).json(verifyTokenRes);
return;
}
try {
const userInfo = await userServiceInstance.getUserInfo(req.params.userId);
if (!userInfo)
return res.status(404).json('나의 정보보기 오류');
res.status(200).json(userInfo);
} catch (e) {
console.log(e);
res.status(500).json({ message: "회원정보 조회 실패" });
}
}
회원 정보를 받아오는 controller 내 함수이다.
(token 확인하는 건 다음 포스트에 미들웨어를 적용할 예정)
코드를 보면 함수 전체를 try catch로 감싸고 있다!!!
이게 controller의 함수 뿐만 아니라 service내 함수도 모두 이런식으로
try-catch가 있어서 어디서 어떤 것 때문에 에러가 났는 지 몰라 유지보수 하기에 굉장히 힘들었다.
최근 Spring프로젝트를 진행할 때 @ControllerAdvice
와 @ExceptionHandler
를 사용하여
예외처리를 편리하게 하는 방법을 배웠고 예외처리를 전역으로 하는 것이 너무 편리해서 놀랐다.
그래서 포트폴리안도 이렇게 예외처리를 편하게 바꾸고 싶다는 생각을 했다~
Author And Source
이 문제에 관하여([포트폴리안] node.js에서 예외처리 깔끔하게 하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@tlsrlgkrry/포트폴리안-node.js에서-예외처리-깔끔하게-하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)