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. 삼고잉
    잘 읽었습니다.
  2. NeoDahl
    무슨 이유에선진 모르겠지만 영상에서는 어느순간부터 query string 값이 주소에 들어가 있었네요. 그래서 아마 다른 분들도 실습하시는데 약간 헷갈려 하시는것 같습니다.

    그래서 영상 윗부분에 '실습하실 때 url 뒤에 ?id= 의 값을 직접 입력해주셔야 오류가 발생하지 않습니다. ' 라고 적어 두셨네요
  3. piper
    언제나 너무나 친절하고 꼼꼼한 강의 , 감사드립니다^^
  4. 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 자세히 보기