
148
한 권으로 끝내는 Node & Express
마지막으로 다음과 같이 핸들러를 애플리케이션에 연결합니다 (
ch08
/
meadowlark
.
js
).
app.get(‘/newsletter-signup’, handlers.newsletterSignup)
app.post(‘/newsletter-signup/process’, handlers.newsletterSignupProcess)
app.get(‘/newsletter-signup/thank-you’, handlers.newsletterSignupThankYou)
이게 전부입니다. 핸들러에서 ‘감사 인사’ 뷰로 리디렉트한 이유는, 여기서 뷰를 렌더링할 수도
있지만 그렇게 한다면 사용자의 브라우저 주소 표시줄은
/
process
로 남아 있을 테고 혼란스
러울 수 있기 때문입니다. 리디렉트를 사용하면 그런 문제가 없습니다.
NOTE
_ 이 예제에서는
301
이 아니라
303
(또는
302
) 리디렉트를 사용한다는 점이 중요합니다.
301
리디
렉트는 완전히 이동했다는 의미이므로 브라우저가 리디렉트한 위치를 캐시에 저장할 수도 있습니다.
301
리디렉트를 사용한 상태에서 폼을 두 번째로 전송하면, 브라우저는
/
process
핸들러를 아예 무시하고
/
thank
-
you
로 바로 이동할 수도 있습니다. 이전에 ‘완전히’ 이동했다는 ...