공부 저장소/Node.js

[생활코딩 Node.js] 3. 기본 문법과 URL 분석

tipsygypsy 2022. 7. 31. 20:31

문법

String, Number, 변수는 이미 잘 알기 때문에 빠르게 지나가고

Template literal

문자 안에 변수나 줄바꿈 입력시 따옴표 열었다 닫았다 하거나 escape 문자를 사용하지 않아도 되는 형식. 변수나 수식은 ${} 안에 입력하고, 줄바꿈은 그냥 하면 보이는 그대로 출력됨

var tl = `String ${변수명}`
// 위에서 따옴표로 보이는 것은 Grave accent이다(esc키 아래에 있는 것)

URL

http://op.org:3000/main?id=HTML&page=12 라는 url(임의의 주소임)을 분석해 보면

  • http : protocol (브라우저-서버 간 통신 규약)
  • op.org : host(domain) (인터넷에 연결되어 있는 특정 컴퓨터의 주소)
  • 3000 : port(host 컴퓨터 안의 특정 서버에 연결되는 번호)
  • (http의 기본 포트는 80으로 보통 생략함, 따라서 localhost 포트 80으로 설정하면 안 됨)
  • main : path(컴퓨터 안의 파일 경로)
  • id=HTML&page=12 : query string(?로 시작하고 값과 값의 구분자는 &)

Query string 사용하기

url 뒤에 입력된 쿼리스트링을 받아서 사용하는 소스를 만들어 본다.

기본 웹서버 만들기에서 사용했던 소스를 약간 수정해서 사용할 수 있다.

var http = require('http');
var fs = require('fs');
var url = require('url'); //url모듈 사용

var app = http.createServer(function(request,response){
    var url_add = request.url;
        // 입력된 url주소를 파싱하여 객체에 넣는 로직
    var queryData = url.parse(url_add, true).query; 
        // queryData를 찍어 보면 id 값을 가져오는 것을 볼 수 있다
        console.log(queryData.id);

    if(url_add == '/'){
      url_add = '/index.html';
    }
    if(url_add == '/favicon.ico'){
      response.writeHead(404);
      response.end();
      return;
    }
    response.writeHead(200);

        //화면에 id값을 출력한다
    response.end(queryData.id);

});
app.listen(5000);

http://localhost:5000/?id=html 로 접속하여 확인해 본다.

(* 여기서 5000은 소스 마지막에 listen에 지정한 포트 번호이므로 다른 번호로 바꿔도 됨(80 제외))