본문 바로가기

Web Development/Back-end

[Error] Cannot set headers after they are sent to the client (클라이언트로 보내진 헤더를 다시 조정할 수 없다는 의미)

원인 : 즉, 응답값 (Nodejs에서는 res.send 혹은 res.json 등을 의미한다)이 중복되어 클라이언트에 전달되어 생겨나는 문제.

 

 


 

내 애플리케이션 사례 : 미들웨어에서 s3버킷에 있는 객체를 삭제하고 -> Post Delete Controller에서 글을 삭제하는 로직을 수행함. 그런데, s3를 삭제하는 미들웨어에서 res.json으로 프론트엔드에 삭제성공 데이터를 보내고, Delete Controller에서 다시 res.json으로 프론트엔드에 삭제성공 메세지를 중복되게 보내는 실수.

 


해결방안 : 미들웨어에서는 응답값을 삭제하고, 단순히 next()를 통해 다음 컨트롤러로 이동시켜줄 수 있도록 수정함.