본문 바로가기

명사 美 비격식 (무리 중에서) 아주 뛰어난[눈에 띄는] 사람[것]

JavaScript/Node.js

Node.js 로 간단한 웹서버 만들기: 정적/동적파일서버

예제코드를 아직 다운받지않았다면 아래 게시물을 수행한다.

https://standout.tistory.com/1383

 

Node.js 로 간단한 웹서버 만들기: 정적파일서버

간단한 웹서버를 만들어 요청된 url에 따라 해당하는 파일을 읽어 응답으로 전송한다. gs.readFileSynx 메서드를 사용하여 파일의 내용을 응답본문으로 설정한다. node main.js var http = require('http'); var fs

standout.tistory.com

 

 

url문자열을 이용하여 파일을 읽어와 정적 html템플릿에 적용하여 응답본문으로 전송한다.

var http = require('http');
var fs = require('fs');
var url = require('url');

// HTTP 서버를 생성합니다. 요청을 처리하는 콜백 함수를 전달합니다.
var app = http.createServer(function(request,response){
    // 요청된 URL과 쿼리 문자열을 가져옵니다.
    var _url = request.url;
    var queryData = url.parse(_url, true).query;
    var title = queryData.id;

    // 기본 제목을 설정합니다.
    if(_url == '/'){
      title = 'Welcome';
    }

    // 파비콘 요청('/favicon.ico')이 들어온 경우 404 오류를 반환합니다.
    if(_url == '/favicon.ico'){
      return response.writeHead(404);
    }

    // HTTP 응답 헤더를 작성합니다. 상태 코드 200을 반환합니다.
    response.writeHead(200);

    // 데이터 디렉토리에서 파일을 비동기적으로 읽어옵니다.
    fs.readFile(`data/${queryData.id}`, 'utf8', function(err, description){
        // 읽은 파일 내용을 HTML 템플릿에 적용하여 응답 본문으로 전송합니다.
        var template = `
        <!doctype html>
        <html>
        <head>
          <title>WEB1 - ${title}</title>
          <meta charset="utf-8">
        </head>
        <body>
          <h1><a href="/">WEB</a></h1>
          <ul>
            <li><a href="/?id=HTML">HTML</a></li>
            <li><a href="/?id=CSS">CSS</a></li>
            <li><a href="/?id=JavaScript">JavaScript</a></li>
          </ul>
          <h2>${title}</h2>
          <p>${description}</p>
        </body>
        </html>
        `;
        response.end(template);
    });
});

// 서버가 지정된 포트(3000)에서 요청을 수신하도록 설정합니다.
app.listen(3000);