본문 바로가기
JavaScript/Node.js

생활코딩 Node.js 파일 이용, 콘솔 입력값 등

by mingutistory 2020. 4. 4.
728x90

Node JS콘솔에서의 입력값 

var args = process.argv; 

배열로 반환. [0] : node.js 런타임 위치 [1] : 현재 실행시키고 있는 폴더 위치 [2] ~ : 매개변수

순서대로 출력

 

Not found 구현

var queryData = url.parse(_url, true) > url 정보 반환 (json형태)

pathname : 쿼리 스트링 제외한 값

response.writeHead(200); // 웹 브라우저가 웹 서버에 접속 했을 때 접속에 대한 응답이 필요. 200이라는 숫자를 서버에서 브라우저로 전송하면 정상적으로 수행 했다는 뜻. <-> 404

 

역시 모든 건 연결 되어 있구먼

 

홈페이지 구현

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 pathName = url.parse(_url, true).pathname;
    var title = queryData.id;
    var template; 

    if(pathName === '/') {
      if(title === undefined) {
        title = 'Welcome'; 
        var description = 'hello node.js'; 
        
        template = `
        <!doctype html>
        <html>
        <head>
          <title>WELCOME</title>
          <meta charset="utf-8">
        </head>
        <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.writeHead(200); 
        response.end(template);
      }else {
        fs.readFile(`data/${title}.txt`, 'utf8', function(err, description) {
        template = `
          <!doctype html>
          <html>
          <head>
            <title>WEB1 - ${title}</title>
            <meta charset="utf-8">
          </head>
          <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.writeHead(200); 
          response.end(template);
        });     
      }

      console.log(template); 


    }else {
      response.writeHead(404); 
      response.end("Not Found");
    }

}); 
app.listen(3000);

흠 반복되는 코드가 보기 싫어서

response.writeHead(2000); response.end(template);을 if-else문 밖으로 뺐는데 그러면 홈 페이지는 뜨는데 나머지 페이지들이 뜨지 않았다. reponse에 이유가 있나?

300x250

댓글