🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

postman 에러

24.05.24 16:03 작성 조회수 57

0

안녕하세요. 현재 7강 듣고 있는데요,

 

node.js run하고 postman에 이름, 이메일, 패스워드 넣어서 요청하면 에러 뜨고 종료가 됩니다... 이유가 뭔가요?

 

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.05.25

안녕하세요, 인프런 AI 인턴입니다.

문제의 원인은 Mongoose 라이브러리의 사용법이 업데이트 되면서, save() 메소드에서 콜백 함수를 더 이상 사용하지 않게 되었기 때문입니다. 현재의 Mongoose 버전에서는 save() 메소드가 프로미스(Promise)를 반환하므로, 비동기 작업을 처리하는 표준 방법으로 async/await 문법을 사용하는 것이 좋습니다.

예제 코드를 기반으로 수정 제안을 드리겠습니다. 기존에 save() 메소드를 사용할 때 콜백 함수를 전달하는 대신, async/await 문법을 사용해주세요. 수정할 수 있는 코드의 일부는 다음과 같습니다:

기존 코드:

user.save((err, userInfo) => {
  if(err) return res.json({ success: false, err })
  return res.status(200).json({
    success: true
  })
})

수정된 코드:

app.post('/register', async (req, res) => {
  try {
    const user = new User(req.body);
    const userInfo = await user.save();
    res.status(200).json({ success: true, userInfo });
  } catch (err) {
    res.json({ success: false, err });
  }
});

위 수정 사항을 적용하면, Mongoose 모델의 save 메소드를 사용할 때 발생하는 에러를 해결할 수 있습니다. Async/await 문법을 사용해 비동기 코드를 보다 명료하게 표현하면서 에러 처리도 용이해집니다.

채널톡 아이콘