readdir

var testFolder = './data';
var fs = require('fs');

fs.readdir(testFolder, function(error, filelist){
  console.log(filelist);
})

현재 기준이 되는 폴더에서 data 폴더의 파일들 이름이 출력이 된다.

ex) ['CSS','HTML','JavaScript']

'휴지통 > Node.Js' 카테고리의 다른 글

공부(11)  (0) 2021.08.25
공부(10)  (0) 2021.08.24
공부(8)  (0) 2021.08.24
공부(7)  (0) 2021.08.24
공부(6)  (0) 2021.08.24

홈페이지 구현

 

홈부분에 undefined가 뜬다 이유는 홈 제목과 본문이 없기 때문 즉 홈에 대한 처리를 해야된다

 

if문 안에 if중첩문으로 코드를 넣어준다

      if(queryData.id === undefined){
        var title = 'Welcome';
        var description = 'Hello, Node.js';
        fs.readFile(`data/${queryData.id}`, 'utf8', function(err, description){
          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.writeHead(200);
          response.end(template);
        });
      }

만약 쿼리데이터의 아이디가 undefined라면 위와같이 되도록 설정

 

title값과 description값을 쿼리데이터가 아닌(undefined이기 때문) Welcome과 Hello, Node js로 하기로 했다

 

    if(pathname === '/'){
      if(queryData.id === undefined){
          var title = 'Welcome';
          var description = 'Hello, Node.js';
          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.writeHead(200);
          response.end(template);
      } else{
        fs.readFile(`data/${queryData.id}`, 'utf8', function(err, description){
          var title = queryData.id;
          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.writeHead(200);
          response.end(template);
        });
      }
    } else {
      response.writeHead(404);
      response.end('Not found');
    }

이것저것 정리했다

 

readfile은 undefined에 필요가 없기 때문에 없애주었다 (파일이름을 읽어서 data 폴더 안에 동일한 파일이름의 파일의 내용을 불러오는 것인데 그것이 의미가 없기 때문이다)

 

만약 언디파인이라면 아니라면 200

그리고 이도저도 아니라면 404

 

var title, var description 값들은 너무 멀리있어서 해당 구문 근처로 옮겨주었다

'휴지통 > Node.Js' 카테고리의 다른 글

공부(10)  (0) 2021.08.24
공부(9)  (0) 2021.08.24
공부(7)  (0) 2021.08.24
공부(6)  (0) 2021.08.24
공부(5)  (0) 2021.08.24

Not found 구현

 

if url 부분이랑 그 바로아래 return response.writeHead(404); 부분까지 없애준다

 

console.log(url.parse(_url, true));

이 코드에 무슨 내용이 있는지 확인해보자

 

url의 대한 정보가 출력된다

 

웹이 정상적으로 구동되면 200

파일을 찾을 수 없는 경우 404

var pathname = url.parse(_url, true).pathname;

    if(pathname === '/'){
      fs.readFile(`data/${queryData.id}`, 'utf8', function(err, description){
        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.writeHead(200);
        response.end(template);
      });
    } else {
      response.writeHead(404);
      response.end('Not found');
    }

 

추가된 코드들이다

 

pathname은 쿼리스트링(? 뒤에 붙는 값)만 뺀 값이므로

 

http://localhost:3000/favicon.ico를 할 경우 Not found를 출력 -> pathname = /favicon.ico이 되어버리므로 else문으로 처리가 됨

 

'휴지통 > Node.Js' 카테고리의 다른 글

공부(9)  (0) 2021.08.24
공부(8)  (0) 2021.08.24
공부(6)  (0) 2021.08.24
공부(5)  (0) 2021.08.24
공부(4)  (0) 2021.08.23

Parameter

var add(a,b){
	console.log(a+b);
    }

여기서 a, b는 Parameter 값이다

Argument

add(5,4);

이때의 5, 4 는 Argument 값이다

 

var args = process.argv;
console.log(args);

이렇게 입력하고

node syntax/conditional.js A (경로, 입력한값 A)

값을 보면

첫줄에는 nodejs런타임의 위치에 대해 나오고

두번째줄에는 이 파일을 실행시킨 경로에 대해 나오고

세번째줄에는 입력한 값이 나오게 된다 즉 입력값은 세번째부터 나오게 된다

 

컴퓨터는 보통 0부터 카운팅한다는걸 유의해야한다

 

'휴지통 > Node.Js' 카테고리의 다른 글

공부(8)  (0) 2021.08.24
공부(7)  (0) 2021.08.24
공부(5)  (0) 2021.08.24
공부(4)  (0) 2021.08.23
공부(3)  (0) 2021.08.23

+ Recent posts