Error

[Error] Cannot set headers after they are sent to the client 오류

Uheeking 2024. 5. 28. 21:12
반응형

1) 문제 발생

에러문제모습
에러문제모습

이 오류는 여러번 발생했던 오류이다. 왜 발생하냐면 서버가 클라이언트에 둘 이상의 응답 을 보내려고 할 때 발생하는 오류이다. 이것이 의미하는 바는 주어진 클라이언트 요청에 대해 서버가 이전에 응답 (요청된 리소스가 있는 성공 응답 또는 잘못된 요청에 대한 오류 응답)을 클라이언트로 보냈고, 또 다른 에러 응답을 보내려고 하는 것이다.

EX) axios를 예를 들면 then에 대한 응답을 보내고 error에 대한 응답도 보내는 것이다.

2) 문제 해결

if 조건부에서 전송되는 응답에 javascript return 문을 추가하여 응답이 클라이언트에 전송되면 코드를 종료시킨다.

if (!req.body.name) {
  return res.status(400).json({
    status: 'error',
    error: 'req body cannot be empty',
  });
}

👇🏻 참고

https://velog.io/@yhe228/ERRHTTPHEADERSSENT-Cannot-set-headers-after-they-are-sent-to-the-client

반응형