생활코딩

Coding Everybody

코스 전체목록

닫기

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. Yeabbi
    완료
  2. twinpooh@gmail.com
    에델 카렌 웅 완료.
  3. 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 자세히 보기