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. RETURN
    <p>완료<p>
  2. 현호
    완료 !!!
  3. 으아 어려워.
  4. 통신 MDP 너무 좋아 ^_^
    완료 ^______________________________________^
  5. 자유로움
    완료
  6. 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= 의 값을 직접 입력해주셔야 오류가 발생하지 않습니다. ' 라고 적어 두셨네요
      • 언제나 너무나 친절하고 꼼꼼한 강의 , 감사드립니다^^
      • meanyMina
        저도 '지번'님과 동일한 값이 나왔는데요, 이는 웹브라우저에 "http://localhost:3000/index.html"라고 입력했을 때 console.log(url); 를 실행하면 "/?id=html"이 아니라 "/index.html"이 나온 것이더라고요.
        그래서 egoing님과 동일하게 웹브라우저 주소를 입력하니, 강의에서 원하는 값이 나왔습니다!
        대화보기
        • 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에서는 또 문제없이 진행이 잘 됩니다.
                  참고하시기 바랍니다.
                  대화보기
                  • 주소표시줄에 http://localhost......TML 이라고 작성해서 엔터를 치면 '사이트에 연결할 수 없음' 으로 나옵니다. 그리고 명령프롬프트에는 http://localhost......TML을 쓰는 순간 에러가 나면서 종료됩니다.
                    대화보기
                    • 감사합니다.
                    • Sungwoong Pyeon
                      이번 강의를 통해서 url을 정확히 이해하게되었습니다. 감사합니다.
                    • egoing
                      _url의 값으로는 어떤 정보가 뜨나요?
                      대화보기
                      • 정현우
                        저도 지번님이랑 똑같은 문제가 뜨네요 ㅜㅜ localhost주소에 querysting 부분이 안떠서 이고잉님 말씀대로 주소 뒤에 쿼리스트링 부분 ?id=HTML을 따로 추가해하면 cmd창에 error message로 그런 파일이나 디렉토리가 없다고 뜹니다 ㅜㅜ 예제코드를 똑같이 따라 쳐도 queryData.id에 담긴 값이 빈 object로 {}만 출력되네요 ㅜ
                        대화보기
                        • 주소표시줄에 http://localhost:3000 이렇게는 잘 나오는데 http://localhost:3000/?id=HTML 이렇게 하면 사이트에 연결할 수 없다고 나옵니다. 어떻게 해야 강좌처럼 나오나요??
                        • Seo Yun Seok Tudoistube
                          저는, 주소를 바꿔보니까 제대로 나왔습니다.
                          http://localhost......TML
                          감사합니다!
                          대화보기
                          • egoing
                            '저의 경우 /index.html만 나오고 뒤에 쿼리 스트링이 나오지 않습니다'

                            이 부분을 잘 이해를 못했어요.

                            지번님께서 직접 http://localhost......TML 로 접속하면 되지 않나요?

                            :)
                            대화보기
                            • 지번
                              강의 통해서 자바스크립트를 공부하고 있는 1인입니다.
                              10번째 강의 초반에 보면 9번째 강의와 다르게 'id=' 이 부분이 나오는데
                              저의 경우 /index.html만 나오고 뒤에 쿼리 스트링이 나오지 않습니다
                              중간에 log 값을 입력하면 cmd에는 인덱스와 favicon 이것만 출력되고요,
                              강의를 그대로 따라가도 cmd에는 undefined만 나오고요
                              어떻게 해야 쿼리 스트링 값이 나올 수 있을까요?
                            버전 관리
                            egoing
                            현재 버전
                            선택 버전
                            graphittie 자세히 보기