-
카테고리
-
세부 분야
풀스택
-
해결 여부
미해결
postman 에러
24.05.24 16:03 작성 조회수 57
0
안녕하세요. 현재 7강 듣고 있는데요,
node.js run하고 postman에 이름, 이메일, 패스워드 넣어서 요청하면 에러 뜨고 종료가 됩니다... 이유가 뭔가요?
답변을 작성해보세요.
0
인프런 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 문법을 사용해 비동기 코드를 보다 명료하게 표현하면서 에러 처리도 용이해집니다.
답변 1