Node.js

Node.js - URL로 입력된 값 사용하기

수업소개

URL에 포함된 쿼리 스트링을 해석해서 이용하는 방법을 살펴봅니다. 

 

 

 

URL의 이해

강의

 

 

 

Node.js에서 URL을 통해서 입력된 값을 사용하는 방법

강의

실습하실 때 url 뒤에 ?id= 의 값을 직접 입력해주셔야 오류가 발생하지 않습니다. 

 

 

 

소스코드

main.js

차이점

var http = require('http');
var fs = require('fs');
var url = require('url');

var app = http.createServer(function(request,response){
    var _url = request.url;
    var queryData = url.parse(_url, true).query;
    console.log(queryData.id);
    if(_url == '/'){
      _url = '/index.html';
    }
    if(_url == '/favicon.ico'){
      return response.writeHead(404);
    }
    response.writeHead(200);
    response.end(queryData.id);

});
app.listen(3000);

 

댓글

댓글 본문
작성자
비밀번호
  1. CronEB
    재밌네요
  2. 루이자
    [Object: null prototype] { id: 'css' }

    출력이 이렇게 나오는데.. 맞나요?ㅠㅠ
  3. 너구친구
    코드 따라 쳐보고 다시 한 번 돌려보니까 이해가 잘 되네요.
  4. YesterdayKite
    완료. 감사합니다.
  5. AutumnTree
    완료 :~D
  6. 주워니
    완료~!
  7. 김형근
    네...? 왜 이렇게 이해가 안가죠... ㅠㅡㅠ
  8. 이채
    혹시 주소창에 url을 잘못 치신 것은 아닌가요?
    localhost:3000/?id=HTML
    쿼리스트링(? 이하~)을 따라 접속해야 id값을 현출하는 구조기 때문에 위처럼 쓰셔야 HTML이 나타납니다.
    대화보기
    • 저도 동일하네요...
      대화보기
      • node main.js 해서 왜 nodefined가 되는지 잘 모르겠습니다. 분명 되었었는데 혹시 몰라서 저기에 있는 코드를 다시 복붙해봐도 안되네요..
      • 오은석
        감사합니당 ^^
      • 허공
        190510 감사합니다.
      • 이루
        완료
      • jennypark
        check!
      • 위준우
        완료
      • RETURN
        <p>완료<p>
      • 현호
        완료 !!!
      • 으아 어려워.
      • 통신 MDP 너무 좋아 ^_^
        완료 ^______________________________________^
      • 자유로움
        완료
      • cbw1030@naver.com
        주소창에 localhost:3000/?id=HTML 이렇게 쳐보세요 !
        대화보기
        • Chungwol
          _url을 통해 현재 접속된 웹페이지의 정보를 querydata에 오브젝트 형식으로 저장해놓고 query만 조회할려고 해보니
          object : null prototype {} 라며 다른 정보들이 보이지 않네요. 저만 이런건가요?
        • supernet
          완료
        • 도토리묵
          완료
        • 호두
          재미있어요
        • 지미츄
          ?id=부분을 주소창에서 직접 쳐서 성공시켰네여 ㅜㅜ ㅎ 감사합니다 !
        • 나마코엘
          오오.. 재미있네요.
        • 쑤쑤
          어려워여..ㅠ
        • 소금돌
          어려움!
        • Yeabbi
          완료
        • twinpooh@gmail.com
          에델 카렌 웅 완료.
        • jo_onc
          main.js 안의 코드를 이번 강의에 맞게 변경해주셔야해요.
          대화보기
          • 삼고잉
            잘 읽었습니다.
          • NeoDahl
            무슨 이유에선진 모르겠지만 영상에서는 어느순간부터 query string 값이 주소에 들어가 있었네요. 그래서 아마 다른 분들도 실습하시는데 약간 헷갈려 하시는것 같습니다.

            그래서 영상 윗부분에 '실습하실 때 url 뒤에 ?id= 의 값을 직접 입력해주셔야 오류가 발생하지 않습니다. ' 라고 적어 두셨네요
          • piper
            언제나 너무나 친절하고 꼼꼼한 강의 , 감사드립니다^^
          • meanyMina
            저도 '지번'님과 동일한 값이 나왔는데요, 이는 웹브라우저에 "http://localhost:3000/index.html"라고 입력했을 때 console.log(url); 를 실행하면 "/?id=html"이 아니라 "/index.html"이 나온 것이더라고요.
            그래서 egoing님과 동일하게 웹브라우저 주소를 입력하니, 강의에서 원하는 값이 나왔습니다!
            대화보기
            • Erin
              fs.readFileSync 를 빼지 않으셨을 것 같습니다.
              대화보기
              • egoing
                전체 오류 코드를 보여주셔야 도움을 드릴 수 있을 것 같습니다.
                대화보기
                • egoing
                  처음에는 수동으로 하는 것이 맞고요, 링크를 수정하면 수동으로 할 일이 없어집니다 ㅎㅎ
                  대화보기
                  • heiditty
                    저는 코드가 나타나야 할 부분에 events.js:183 라고 뜨고 있습니다...
                  • Gimme_Gsuit
                    저도 이고잉님 영상 그대로 따라 했는데 undifined 만 뜨고 뒤에 query string 값이 출력 안되다가 URL 뒷부분에 제가 직접 ?id=HTML로 바꿔서 들어가니깐 이고잉님 처럼 출력 되네요. 혹시 원래 이렇게 수동으로 해야되는지??? 제가 잘 못 이해했는지해서 ㅎㅎ...여쭤봅니다.
                  • Jaeyong Um
                    var queryData = url.parse(_url, true).query;
                    에서의 url이, JS나 node.js 자체에 내장된? 함수 같은 것인가요

                    아니면 3번째줄, var url = require('url');의 왼쪽 변수이름 url인가요?
                  • egoing
                    혹시 제 수업에서 어떤 부분의 정정이 필요한지 알려주실 수 있을까요?
                    대화보기
                    • spacepublisher
                      8.11.3 LTS 버전 기준,

                      강의 전반부
                      var url = require('url');
                      이 코드가 없는 main.js는 확실히 저도 동일한 문제가 있네요.

                      하지만, 후반부
                      var url = require('url');
                      이 코드가 들어온 main.js에서는 또 문제없이 진행이 잘 됩니다.
                      참고하시기 바랍니다.
                      대화보기
                      • JOOYA
                        주소표시줄에 http://localhost......TML 이라고 작성해서 엔터를 치면 '사이트에 연결할 수 없음' 으로 나옵니다. 그리고 명령프롬프트에는 http://localhost......TML을 쓰는 순간 에러가 나면서 종료됩니다.
                        대화보기
                        • moon
                          감사합니다.
                        • Sungwoong Pyeon
                          이번 강의를 통해서 url을 정확히 이해하게되었습니다. 감사합니다.
                        • egoing
                          _url의 값으로는 어떤 정보가 뜨나요?
                          대화보기
                          • 정현우
                            저도 지번님이랑 똑같은 문제가 뜨네요 ㅜㅜ localhost주소에 querysting 부분이 안떠서 이고잉님 말씀대로 주소 뒤에 쿼리스트링 부분 ?id=HTML을 따로 추가해하면 cmd창에 error message로 그런 파일이나 디렉토리가 없다고 뜹니다 ㅜㅜ 예제코드를 똑같이 따라 쳐도 queryData.id에 담긴 값이 빈 object로 {}만 출력되네요 ㅜ
                            대화보기
                            • JOOYA
                              주소표시줄에 http://localhost:3000 이렇게는 잘 나오는데 http://localhost:3000/?id=HTML 이렇게 하면 사이트에 연결할 수 없다고 나옵니다. 어떻게 해야 강좌처럼 나오나요??
                            버전 관리
                            egoing
                            현재 버전
                            선택 버전
                            graphittie 자세히 보기