DB에서 사용자 정보를 가져와서 처리한 뒤 응답을 보내려고 하는데, 특정 조건에서 서버가 응답을 안 주고 계속 대기 상태로 있어요.
코드:
const express = require('express');
const app = express();
async function getUserData(id) {
if (id === 'error') {
throw new Error('DB Connection Fail');
}
return { id, name: 'User' };
}
app.get('/user/:id', async (req, res) => {
const data = await getUserData(req.params.id);
res.send(data);
});
app.listen(3000);
오류: 브라우저에서 /user/error 접속 시 응답이 오지 않고 무한 로딩되다가 timeout 발생
시도: console.log를 찍어봤는데 getUserData 내부에서 에러가 나는 것까지만 확인했고, await 위치를 바꿔봤지만 똑같아요.
질문: async 함수에서 에러가 발생했을 때 왜 express가 자동으로 에러 응답을 보내지 않고 서버가 멈춘 것처럼 보이는 건가요?
댓글3
모든 이야기1496
가벼운 안부부터 깊은 생각까지, 함께 나눠요.
총 1496개의 이야기
try-catch로 안 감싸서 그런듯요
에러 터졌는데 처리해줄 곳이 없으니까 그냥 멍 때리는 거임ㅋㅋ