더북(TheBook)

restServer.js가 핵심입니다. 코드를 보면 req.method로 HTTP 요청 메서드를 구분하고 있습니다. 메서드가 GET이면 다시 req.url로 요청 주소를 구분합니다. 주소가 /일 때는 restFront.html을 제공하고, 주소가 /about이면 about.html 파일을 제공합니다. 이외의 경우에는 주소에 적힌 파일을 제공합니다. /restFront.js라면 restFront.js 파일을 제공하고 /restFront.css라면 restFront.css 파일을 제공합니다. 만약 존재하지 않는 파일을 요청했거나 GET 메서드 요청이 아닌 경우라면 404 NOT FOUND 에러가 응답으로 전송됩니다. 응답 과정 중에 예기치 못한 에러가 발생한 경우에는 500 에러가 응답으로 전송됩니다(실무에서는 500을 전송하는 경우는 드뭅니다).

Note ≣ res.end 앞에 return은 왜 붙이나요?

입문자들은 res.end를 호출하면 함수가 종료된다고 착각하곤 합니다. 노드도 일반적인 자바스크립트 문법을 따르므로 return을 붙이지 않는 한 함수가 종료되지 않습니다. 따라서 다음에 코드가 이어지는 경우에는 return으로 명시적으로 함수를 종료했습니다. return을 붙이지 않아 res.end 같은 메서드가 여러 번 실행된다면 Error: Can't render headers after they are sent to the client. 에러가 발생합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.