92
한 권으로 끝내는 Node & Express
6.7.
매개변수
‘매개변수’라는 단어의 뜻은 아주 다양하며 종종 혼란을 일으킵니다. 어떤 요청이든, 매개변수
는 쿼리스트링에도 들어 있고 세션(쿠키 필요,
9
장에서 다룹니다)에도 들어 있으며 요청 본문
이나 이름 붙은
named
라우팅 매개변수(
14
장에서 더 설명합니다)에도 들어 있습니다. 노드 애플
리케이션에는 이들 매개변수를 요청 객체 하나로 묶는
param
메서드가 있습니다. 필자는 이 메
서드를 쓰지 않길 권합니다. 이름이 같은 매개변수가 쿼리스트링에도 들어 있고
POST
본문이나
세션에도 들어 있다면 대체 어느 값이 선택될까요? 정말 골치 아픈 버그가 생길 수 있습니다.
이 혼란은 상당 부분
PHP
에서 비롯됐습니다.
PHP
는 ‘편리함’을 목적으로 이들 매개변수를 모
두
$
_
REQUEST
변수에 묶었으며, 이걸 좋은 아이디어라고 생각하는 사람들이 있었습니다. 다양
한 매개변수 타입마다 이를 저장하는 전용 프로퍼티가 있으며, 이에 대해 배울 것입니다. 필자
는 이 방법이 훨씬 덜 혼란스럽다고 생각합니다.
6.8.
요청 객체
요청 객체는 일반적으로 콜백에 전달되므로 이름은 원하는 대로 정해도 됩니다. 보통
req
이나
request
를 씁니다. 요청 객체는 핵심 노드 객체인
http
.
IncomingMessage
인스턴스에서 시작
하며 익스프레스에서 기능을 추가합니다. 요청 객체의 가장 유용한 프로퍼티와 메서드를 살펴
봅시다. 이들 메서드는 대부분 익스프레스에서 추가한 것인데,
req
.
headers ...