Server Side JavaScript

Express-URL을 이용한 정보의 전달

여기서는 URL을 통해서 에플리케이션에 정보를 전달하는 방법에 대해서 알아봅니다. 

쿼리 스트링이란? 

Express의 query 객체의 사용  

 

 query 객체의 활용

 

의미론적인 URL (semantic url) 

아래는 query string을 이용해서 정보를 전달하는 방법을 보여주고 있습니다. 

app.get('/topic', function(req, res){
  var topics = [
    'Javascript is....',
    'Nodejs is...',
    'Express is...'
  ];
  var output = `
  <a href="/topic?id=0">JavaScript</a><br>
  <a href="/topic?id=1">Nodejs</a><br>
  <a href="/topic?id=2">Express</a><br><br>
  ${topics[req.query.id]}
  `
  res.send(output);
})
 

아래는 semantic URL 방식을 통해서 정보를 전달하는 모습을 보여주고 있습니다. 

app.get('/topic/:id', function(req, res){
  var topics = [
    'Javascript is....',
    'Nodejs is...',
    'Express is...'
  ];
  var output = `
  <a href="/topic?id=0">JavaScript</a><br>
  <a href="/topic?id=1">Nodejs</a><br>
  <a href="/topic?id=2">Express</a><br><br>
  ${topics[req.params.id]}
  `
  res.send(output);
})
app.get('/topic/:id/:mode', function(req, res){
  res.send(req.params.id+','+req.params.mode)
})

댓글

댓글 본문
작성자
비밀번호
  1. 안녕하세요! 처음으로 댓글 올립니다
    semantic URL 이야기를 하시는 4번째 동영상을 따라하다가 알게 된 점이
    마지막 코드대로하면 Javascript Nodejs Express 라는 링크를 누르면 cannot get 에러를 낸다는 부분입니다.

    url은 ?id=1 로 가는데 막상 가야하는 url은 /1 이 아닌가 싶네요
  2. 코딩bbs
    저의 구세주 egoing님 정말 감사합니다.
  3. 유기농브래드
    강의 항상 감사합니다~
  4. 욕심쟁이
    좋은 강의 감사합니다.
  5. WayneKing
    매번 감사합니다.
  6. 초보웹 개발자
    지난번에 제대로 이해하지 못하고 지나갔었는데
    html document 간 data의 공유도 이런 방법으로 사용할 수 있을것 같습니다.

    보안이 요구되는 정보의 공유는 이후에 나올것으로 기대합니다.
  7. 헝헝
    이고잉님 키보드 어떤 키보드 사용하시나요? 뭔가 소리가 두두두둑 하는데 좋네요.
  8. egoing
    아래와 같이 정리 해봤습니다. 의견 감사하고요 :)

    req : 변수 req에 Request 객체가 담겨 있습니다.
    req.query : 객체 Request의 query 프로퍼티에는 Query 객체가 담겨 있습니다.
    req.query.id : 객체 Query의 id 프로퍼티에는 url을 통해서 전달된 id 값(?id=값)이 들어있습니다.

    변수가 객체에 속해 있을 때 프로퍼티(Property)라고 하고,
    함수가 객체에 속해 있을 때 메소드(method)라고 합니다.
    대화보기
    • 쿼리 객체 사용법 영상을 보다가 질문과 의견이 있어서 적어봅니다.

      질문1.
      "req.query 프로퍼티에 id, name, q 등등 프로퍼티 값을 가질 수 있다."- 영상 내용중 이부분에 대해 질문이 있습니다.
      이 말씀을 정리하면, req객체의 프로퍼티중 query라는 프로퍼티가 있고 이 것은 객체 타입인데, query객체의 프로퍼티로, id name, q (쿼리 스트링)을 가질 수 있다. 이 말씀이시지요?

      의견1.
      중간 부분에 "프로퍼티는 변수라고 생각하시면 됩니다"라는 부분이 뒷 부분에 나오는 'req객체의 query객체의'.이 설명에 조금 혼돈이 있지 않을까 합니다.
      용어의 정확한 의미 및 용어를 통일해서 설명 해주시면 더 좋을 것 같습니다. (프로퍼티, 변수, 객체)
    버전 관리
    egoing
    현재 버전
    선택 버전
    graphittie 자세히 보기