node.js를 갖고 프로젝트를 진행하던 도중 갑자기 오류가 떴다.

[ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
라고 쓰여 있는데, 클라이언트로는 전송을 하는 데에는 성공했지만 헤더를 세팅하지 못했다는 오류 같다.
https://stackoverflow.com/questions/7042340/error-cant-set-headers-after-they-are-sent-to-the-client
검색해보니 매우 간단한 이유였는데...
res.send() 또는 res.redirect()와 같이 응답 코드를 연속해서 사용할 시 두 번째 응답 코드에서 발생하는 오류다. 이미 클라이언트로 응답을 완료한 상태에서 또 다른 응답이 전송되어 충돌이 발생했기 때문에 발생한 것이다.

1) response를 하나만 보낸다
2) 각 response마다 return문을 붙인다
정도가 되겠는데, 가급적이면 return문을 사용하면 될 것 같다.

흔히들 res.send, redirect, json 등의 응답코드를 쓰면 저절로 함수가 종료되는지 알고 있기도 한데, 사실 그렇지 않기 때문에 특이사항이 있는 게 아니라면 return문으로 함수를 직접 종료시키는 게 좋다.