(15) express 모듈 사용-⑥ 쿼리스트링

2019. 4. 3. 11:57 JavaScript BackEnd/Node.js, Express

http://a.com/index

http://a.com/login

http://a.com/topic

login이라는 하나의 라우터(path)로 아이디값 즉 쿼리스트링을 다르게 줌으로써 다른 결과를 나타낼 수 있다.

http://a.com/login?id=1

http://a.com/login?id=2

http://a.com/login?id=3


http: 프로토콜 

a.com: 도메인 네임

/login: path

id=1: query string(쿼리스트링)

http://a.com/login : url

http://a.com/login?id=1 :uri


===========================================================================

<app.js>

app.get('/info',function(req, res){

res.send(req.query.id);

});

<description>

req.query.id (요청객체.쿼리스트링.name값)    // 여기서 name=id 

127.0.0.1:3000/info?id=success87 로 접근시  (<< url에서 쿼리스트링: id=success87)


===========================================================================

++ app.js 에 추가해주자..

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

app.get('/info',function(req, res){
res.send(req.query.name+','+req.query.id);
});
=======================================================================

url: 127.0.0.1:3000/info?id=success87&name=Sean 으로 접근시 

Sean, success87이 화면에 출력된다. 

127.0.0.1:3000/info 으로 접근할 경우에는 undefined, undefined

마찬가지로 127.0.0.1:3000/info?id=success87 으로만 접근하면 undefined,success87 가 출력된다. 


위에서 보다시피 url로 접근시 id와 name의 쿼리스트링 위치(순서)는 문제가 되지 않는다. 


주의할 것!

그렇다면 만약 app.js에서 주석처리되어있는 위의 로직을 해제한다면?

생각한대로 url로 접근시 

정상적으로 로직이 전부 실행되지는 않는다. 

로직상 가장 위에 있는 것만 응답객체에 실어서 보내지고 그다음껀 보내지지 않는다. 



출처: https://sourceflower.tistory.com/15?category=561762 [소스플로우]