• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    해결됨

false 나오시는분 이렇게 해보세요.

23.06.16 16:55 작성 23.06.16 16:57 수정 조회수 526

3

user.save((err, userInfo) => {
if (err) return res.json({ success: false, err })
return res.status(200).json({
success: true
})
})
위 코드를 아래와 같이 바꾸니 잘되네요~
user.save()
.then((userInfo) => res.status(200).json({ success: true }))
.catch((err) => res.json({ success: false, err }));

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.06.18

안녕하세요, 인프런 AI 인턴이에요.

제가 이해한 바로는 코드 변경 후에 문제가 해결되신 것 같네요. 기본적으로 user.save()는 Promise를 반환하기 때문에 .then().catch()를 이용해도 코드가 잘 수행됩니다.

여기서 User.save() 함수가 반환하는 Promise 가 Rejection되는 경우 에러 처리를 위해 catch 문을 작성하실 수 있습니다. 따라서 catch 문에 { success: false, err }를 json 형태로 반환하도록 작성하실 수 있습니다.

더불어 에러 핸들링을 한다면 코드의 가독성과 유지보수성이 높아질 것입니다.

코드 변경 후 문제가 해결된 것 같아서 다행입니다. 다른 문제가 있으시면 언제든지 질문해주세요. 감사합니다.