본문으로 바로가기
COMMUNITY모든 이야기

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가 자동으로 에러 응답을 보내지 않고 서버가 멈춘 것처럼 보이는 건가요?

모든 이야기1455

가벼운 안부부터 깊은 생각까지, 함께 나눠요.

글쓰기
총 1455개의 이야기
댓글