記錄

생활코딩_Node.js) 쿼리스트링 (get 방식) 본문

Web/Node.js

생활코딩_Node.js) 쿼리스트링 (get 방식)

surhommejk 2018. 7. 31. 11:27

Node.js 에서 쿼리스트링으로 보낸 값을 어떻게 받는지에 대한 간단한 수업이었다. 스프링과 크게 다를 것은 없었으나 어떤 객체에서 뽑아내는지 알아두는 것이 좋았다


query string (쿼리 문자열, 쿼리 스트링)

- 데이터를 전달하기 위한 URL의 일부분   

- GET 방식 파라미터 전달 문자열


1. 요청

http://localhost:3000/querystring?id=1

2. 응답

app.get('/querystring', function(req, res){
res.send(req.query.id);
});

이해를 돕기 위해 전체 플로우를 다시 짚고 넘어가자면 app.get()에서 첫번째 파라미터로 설정한 요청을 express가 받게 되면 해당 요청에 대해 매핑된  function()(둘째 파라미터)이 call 된다. 이 때에 express에서 약속된 대로 해당 function()의 첫번째 파라미터로 request를, 두번째 파라미터로 response를 넣게 되는 것이다. 각 객체가 가진 자원들은 API 상에서 확인이 가능하다(http://expressjs.com/en/4x/api.html)

3. 결과

페이지 상에 1이 뜨게 되고 '페이지 소스보기'를 눌러도 다른 그 어떤 태그도 없이 1만 있는 것을 확인할 수 있다



넘어가도 되긴 하지만 Request와 Response의 개념을 더 분명히 하고자 API 상에 있는 설명을 여기 첨부한다.

Request

The req object represents the HTTP request and has properties for the request query string, parameters, body, HTTP headers, and so on. In this documentation and by convention, the object is always referred to as req (and the HTTP response is res) but its actual name is determined by the parameters to the callback function in which you’re working.

=> req 객체는 HTTP request 객체를 대표한다(주소값으로서 HTTP request객체를 가리키고 있다는 의미). 그리고 query string, 파라미터들, body, HTTP headers와 같은 자원들을 가지고 있다. 이 문서에서 혹은 관습적으로도 req라는 표현을 쓰고 있고 써 왔다.(HTTP response 객체 역시 res라는 명칭을 사용한다) 하지만 실제 이름은 당신이 사용하는 콜백함수의 파라미터 명에 의해 정해진다(콜백 함수에 req, res 라고 관습적으로 쓰지만 아무거나 편한대로 써도 된다는 의및)


Response

The res object represents the HTTP response that an Express app sends when it gets an HTTP request.

=> res는 HTTP response 객체를 대표한다(위 Request와 같은 맥락). Express app이 HTTP request를 받고 내보내는 객체이기도 하다.

In this documentation and by convention, the object is always referred to as res (and the HTTP request is req) but its actual name is determined by the parameters to the callback function in which you’re working.

=> 위 Request와 같은 이야기



+ 가변적인 쿼리스트링

app.get('/querystring/:id', function(req, res){
res.send(req.params.id);
});

- querystring/ 으로 들어오는 요청의 '/' 뒤에 있는 값을 id로 잡고 이를 req.params.id 로 잡으면 가변적인 쿼리스트링도 캐치 가능하다

1. 요청

http://localhost:3000/querystring/1000

2. 결과

1000



+ 다수의 가변적인 쿼리스트링도 가능

app.get('/querystring/:id/:name', function(req, res){
res.send(req.params.id + '/' + req.params.name);
});


1. 요청

http://localhost:3000/querystring/1000/jkkim

2. 결과

1000/jkkim

Comments