• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

Cannot set headers after they are sent to the client

23.02.04 22:08 작성 23.02.04 22:08 수정 조회수 1.15k

0

스크린샷 2023-02-04 오후 10.05.40.pngCannot set headers after they are sent to the client에러를 구글링해보니 중복처리할 경우 발생한다하던데 이게 뭔 말인지도 잘 모르겠고 코드도 똑같이 따라쳤는데..ㅜㅜ 도와주세요 어떻게 해결해야할까요..몇시간째 붙잡고 있어요

답변 1

답변을 작성해보세요.

0

조교C님의 프로필

조교C

2023.02.17

안녕하세요 :)
답변 드립니다. 더 궁금하신 점 있으시면 언제든지 답글 달아주세요!

Cannot set headers after they are sent to the client에러는 보통 "서버가 클라이언트에게 2개 이상의 응답을 보내려고 할 때" 발생하는 오류로 유명합니다.

예를 들어서 프론트엔드(postman, react, app .. 등)에서 request를 1번 보내면 특수한 경우가 아닌 이상 response를 1번 보내어 1:1로 보내야 합니다.

해당 코드를 보지 않고는 제가 정확히 모르겠지만, 제 경험 상 보통 NestJS에서 해당 오류를 낼 때는
controller 부분에서
res.status(statusCode).json(data);
return;
라고 쓰면 납니다 왜냐하면 controller 부분에서 response(혹은 res) 객체를 쓰자마자 응답이 내려가기 때문입니다. (nodejs의 express 특성입니다.)
위 상황이 맞다면
return res.status(statusCode).json(data);
와 같이 쓰는 것이 맞습니다. :)