728x90
반응형
리스폰스 메소드를 보내는 로직을 작성하면서 자주 마주쳤던 에러이고, 매번 마주칠 때마다 잊어버리고 구글링 하는 내 모습이 바보 같아서 글로 남긴다.
ERROR: Cannot set headers after they are sent to the client
이 에러는 서버가 클라이언트에게 둘 이상의 응답을 보내려고 할 때 발생하는 오류다. 즉 클라이언트에서 서버에게 api를 요청했을 때, 요청에 맞는 리스폰스만 보내줘야 하는데, 백엔드 로직 내에 두 개 이상의 리스폰스를 보내게 되는 상황이 발생해서 이 오류가 뜨는 것이다.
예를 들면, node(express)의 경우, HTTP Response의 sendStatus()라는 메소드가 있다. res에 이 메소드를 설정하면 내가 설정한 상태 코드를 리스폰스로 보내는 것인데, api 요청에 의해 실행되는 하나의 함수에서 sendStatus 메소드가 여러 번 사용되거나, 이 메소드처럼 바로 응답을 보내는 메소드가 있다면, 여러 개의 응답이 보내지기 때문에 에러가 발생하는 것이다.
즉 조금만 집중하고 신경쓰면 잘 마주치지 않을 사소한 에러이기 때문에, 코드 한 줄 한 줄 작성할 때 더 디테일하게 신경쓰도록 노력해야 할 것 같다.
728x90
반응형
LIST
'답수실Log' 카테고리의 다른 글
답수실Log | 220927 | 자주의식을 가지고 코드를 작성하기 (0) | 2022.09.28 |
---|---|
답수실Log | 220925 | 한 번 발 들이면 딥해질 놈 내 예민함은 심해 (0) | 2022.09.25 |
답수실Log | 220512 | error TS2339: Property 'id' does not exist on type 'User'. (0) | 2022.05.31 |
답수실Log | 220327 | ???: 난 잘나가는 장덕수가 아니라, 그냥 장덕수라는 사람을 좋아하는 거라구! (0) | 2022.04.08 |
답수실Log | 220327 | Core dumped?? (0) | 2022.03.27 |
댓글