평행코드

GET이란? (req, res) 본문

Node js

GET이란? (req, res)

나의 오류는 누군가 겪었던 오류 2023. 5. 25. 15:29

get이란

웹사이트한테, "이봐, 나한테 너네 홈페이지 갖다 줘" 라고 이야기 하는 것이다.

웹사이트가 나의 브라우저로 오는 것

 

다시말해서, 웹사이트에 접속할 때 브라우저가 너를 어디론가 데려가는 것이 아니다!

브라우저는 나를 대신해서 웹사이트를 request하고, 페이지를 가져다 주는 것이다.

 

get

- "저 페이지를 갖다줘"

app.get("/", home);

const app = express(); 을 통해 app에 express의 메서드, 기능 등 모든 걸 담고

app.get("route", controller);을 통해 브라우저와의 연결통로를 구축한다.


바닐라JS 때 add.eventListener와 함수를 연결해주는 것과 유사하게, 

브라우저의 request를 받았을 때 서버로써 그에 대한 응답을 return해줄 const controller에 함수를 구성해준다. 

일반적으로 (request, response)를 argument로 받고 무언가를 return해주는 화살표 함수를 구성하는 것으로 시작해준다.

 

req, res

여기서 중요한 것은 request와 response의 마법을 이해하는 것이다.

request는 request에 대한 정보를 주고,

response는 request에 어떻게 응답하느냐는 것이다.

무엇으로든 응답을 해주는 것이 필수다.

파일로 응답할 수도 있고, redirect, text, status code ... 뭐가 됐든 응답을 해 주어야 한다.

 

만약 브라우저의 요청에 대해 서버가 return을 통해 응답하지 않으면 브라우저는 응답을 기다리기만 한다.

그래서 반드시 서버는 request를 받으면 반드시 response를 해주어야 한다.

브라우저 무한 로딩이 될 수 있고, 웹사이트는 느려질 수 있기 때문이다.

const home = (req, res) => res.send("hello");
app.get("/", home);

express constroller

첫 번째 argument는 request object로 기본 설정되어 있고,

두 번째는 response object이다.

중요한 것은 위치이고, 이름은 상관없다.

첫번째 argument에 X, 두번째 argument에 Y로 해놓아도 된다.

하지만, 직관적으로 어떤 argument인지 한눈에 들어오기 편하려면, (req, res)가 낫다고 생각한다!

 

'Node js' 카테고리의 다른 글

Router란?  (0) 2023.05.26
Morgan middleware  (0) 2023.05.26
Middleware란? app.use(), global middleware  (2) 2023.05.25
Express란 무엇일까? 그리고 서버란?  (0) 2023.05.25
Express setup  (0) 2023.05.25