본문 바로가기

Dev.BackEnd/Node.js

[여덟번째] Node.js 기본 / 쿼리 스트링



Application의 기능을 다시 한 번 살펴볼 필요가 있다.

입력에 따라서 출력을 하는

(input)입력 -> Application -> 출력(output)

어떠한 사용자의 조작이 있을 때 다른 것을 보여주는 것을 우린 애플리케이션이라고 한다.

다음과 같은 URL이 있다고 가정하자.
topic을 URL의 구성요소 중 'path'라고 한다.
topic으로 접속을 하게 되면 언제나 똑같은 결과를 보여준다.

경우를 나눠서 다른 결과를 보여주면 좋지 않을까
이 때 쿼리 스트링을 이용한다.
id 값 1을 전달. 1에 해당하는 결과를 출력.
물음표 뒤에 나타나는 것을 "쿼리 스트링"이라고 한다.

하나의 패스에서 다른 아이디값에 따라서 다른 화면을 출력;

function(req,res)
request 정보가 들어오게된다!

app.get('/topic', function(req,res){
    res.send(req.query.id);
})
id 를 쿼리스트링이라고 한다.

http://localhost:3000/topic?id=1&name=jy
res.send(req.query.id+','+req.query.name);
: 두가지를 동시에는 URL 에서는 & 코드에서는 +','+


시맨틱 URL
쿼리 스트링 기호 없이 URL을 나타낸다.
쿼리 스트링 방식 -> Path 방식으로.

app.get('/topic', function(req,res){
...
${topics[req.query.id]}
...
}

이 두 부분을 변경!

app.get('/topic/:id', function(req,res){
    ${topics[req.params.id]}

.params 메소드를 이용한다.
시맨틱 URL 로 바꾸면 html 코드의 링크 속 주소도 바꿔줘야 한다.

코드>
app.get('/topic/:id', function(req,res){
    var topics = [
        'JavaScript is ...',
        'Node.js is ...',
        'Express is ...'
    ];// topic 이라는 배열을 만들었다.
    var output = `
    <a href="/topic/0">JavaScript</a></br>
    <a href="/topic/1">Node.js</a></br>
    <a href="/topic/2">Express</a></br></br>
    ${topics[req.params.id]} //id값이 배열의 index값으로 들어가게 된다.
    `
    res.send(output);
})

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

+ ' , ' + 를 이용해 계속 안으로 들어갈 수 있다.






생활코딩 감사합니다^^
-..-