URL

beanie·2021년 1월 9일
0

node js

목록 보기
3/3
http://opentutorials.org:3000/main?id=HTML&page=12
  • http
    protocol
    http 프로토콜을 사용한다고 명시
  • opentutorials.org
    host(domain)을 명시한다
  • 3000
    port
    3000번 포트에 연결되어 있는 서버와 통신을 의미
  • main
    어떤 directory, file인지 명시
  • id=HTML&page=12
    query string
    웹 서버에 data를 전달하는 역할을 한다
    ? -> query string의 시작을 의미한다

URL query부분 파싱하기

var url = require('url');
// 생략
var _url = requset.url;
var queryData = url.parse(_url, true).query;

require를 통해 모듈 사용을 선언한다 위의 코드에서는 url 모듈을 사용한다고 선언
파싱을 통해 queryData에서 url의 내용을 가져올 수 있게 되었다.

URL id를 통해 동적인 웹사이트 만들기

queryData에서 url을 파싱하여 url의 id부분을 추출할 수 있다.

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;
    var title = queryData.id;
    if(_url == '/'){
      title = "Welcome";
    }
    if(_url == '/favicon.ico'){
        response.writeHead(404);
        response.end();
        return;
    }
    response.writeHead(200);
    fs.readFile(`data/${queryData.id}`, 'utf8', function(err, description){
      var template = `
        <!doctype html>
        <html>
        <head>
          <title>WEB1 - ${title}</title> // id에 따라서 title을 다르게 보여줌
          <meta charset="utf-8">
        </head>![](https://velog.velcdn.com/images%2Fharry7231%2Fpost%2Fc9b3fdb5-84eb-4dc1-944c-7379e2a3fd34%2Fimage.png)
        <body>
          <h1><a href="/">WEB</a></h1>
          <ol>
            <li><a href="/?id=HTML">HTML</a></li>
            <li><a href="/?id=CSS">CSS</a></li>
            <li><a href="/?id=JavaScript">JavaScript</a></li>
          </ol>
          <h2>${title}</h2>
          <p>${description}</p>
        </body>
        </html>
      `;
      response.end(template);
    }) 
});
app.listen(3000);
  • ?id=HTML

  • ?id=CSS

  • ?id=JavaScript

profile
백엔드 개발자가 되고 싶은 나

0개의 댓글