Node.js

Node.js 기초 2 - URL의 이해

에포트 2020. 7. 31. 19:49

위는 URL이 어떻게 이루어져 있는지에 대한 그림이다.

 

이제 쿼리 스트링 (query string) 이 어떻게 노드js에서 사용될 수 있는지 보자. 먼저 main.js를 다시 켜보자.

 

var http = require('http');
var fs = require('fs');
var app = http.createServer(function(request,response){
  var url = request.url;
  console.log(url);
  if(url == '/'){
    url = '/index.html';
  }
  if(url == '/favicon.ico'){
    response.writeHead(404);
    response.end();
    return;
  }
  response.writeHead(200);
  response.end(fs.readFileSync(__dirname + url));

});
app.listen(3000);

 

url을 로그에 찍어주도록 하고 로컬호스트에 http://localhost:3000/?id=HTML 쿼리를 보내봤다. 물론 관련 페이지를 아직 만들지 않았기에 에러가 나면서, 아래와 같은 값이 출력됐다.

 

/?id=HTML

 

이제 쿼리에 있는 값들을 파싱해보자. 먼저 url 모듈을 불러와 준다.

 

const url = require('url');

 

엇 근데 방금 전 함수에서 이미 url이라는 변수를 썼다. 따라서 함수 내에서 사용할 url 변수 앞에 _ 를 붙여주자. 그 후, url 변수에서 쿼리 데이터를 파싱해온다.

 

const queryData = url.parse(_url, true).query;
console.log(queryData);

 

결과값은 아래와 같다.

 

[Object: null prototype] { id: 'HTML' }

 

즉 url을 통해 들어오는 쿼리 데이터를 파싱하면 객체를 얻을 수 있다. 이제 이 객체를 이용해 다른 새로운 기능들을 구현할 수 있을 것이다.