PM2 설치

 

이유 : JS파일을 수정하면 종료하고 다시 실행시켜줘야 변경된 내용이 적용되는데 PM2를 이용하면 알아서 재시작을 해주기 때문에 그럴 필요가 없어진다

 

cmd에    npm install pm2 -g   를 입력하여 설치할 수 있다

 

실행법은

 

pm2 start 실행시킬파일.js

ex) pm2 start main.js

pm2.monit 현재 pm2에 의해 실행되고 있는 목록이 뜬다

pm2.log 로그들을 확인할 수 있다

pm2 stop 종료시킬파일.js

pm2.list 현재 실행되고있는 js 목록들

pm2 start 실행시킬파일.js --watch 소스코드를 변경할때 자동으로 변경된다

 

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

공부(15)  (0) 2021.08.25
공부(14)  (0) 2021.08.25
공부(12)  (0) 2021.08.25
공부(11)  (0) 2021.08.25
공부(10)  (0) 2021.08.24

synchronous(동기적) : 특정 코드를 수행 완료한 이후 아래줄의 코드 수행

 

asynchronous(비동기적) : 특정 코드를 수행하는 도중에도 아래로 계속 내려가며 수행함

 

var fs = require('fs');

//readFileSync

console.log('A');
var result = fs.readFileSync('syntax/sample.txt', 'utf8');
console.log(result);
console.log('C');

이 동기적인 결과는

 

A

B

 

C

순서대로 나오게 된다

 

console.log('A');
fs.readFile('syntax/sample.txt', 'utf8', function(err, result){
  console.log(result);
});
console.log('C');

비동기적인 결과는

A

C

B

로 나오게 된다

 

이름이 없는 함수를 익명함수라고 한다

 

var a = function(){
  console.log('A');
}

function slowfunc(callback){
  callback();
}

slowfunc(a);

실행이 느린 함수가 있다고 가정해보자

 

느린 함수는 일을 마치고 불러주는 callback함수를 이용하게 되면

 

일을 마치고 var a를 실행하게 된다

 

즉 위의 식에서는 A를 출력하게 된다

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

공부(14)  (0) 2021.08.25
공부(13)  (0) 2021.08.25
공부(11)  (0) 2021.08.25
공부(10)  (0) 2021.08.24
공부(9)  (0) 2021.08.24

함수를 이용해서 정리 정돈하기

 

function templateHTMl(title, list, body){
  return `
  <!doctype html>
  <html>
  <head>
    <title>WEB1 - ${title}</title>
    <meta charset="utf-8">
  </head>
  <body>
    <h1><a href="/">WEB</a></h1>
    ${list}
    ${body}
  </body>
  </html>
  `;
}

function templateList(filelist){
  var list = '<ul>';
  var i = 0;
  while(i < filelist.length){
    list = list + `<li><a href="/?id=${filelist[i]}">${filelist[i]}</a></li>`;
    i = i + 1;
  }
  list = list+'</ul>';
  return list;
}

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;
    if(pathname === '/'){
      if(queryData.id === undefined){

        fs.readdir('./data', function(error, filelist){
          var title = 'Welcome';
          var description = 'Hello, Node.js';
          var list = templateList(filelist);
          var template = templateHTMl(title, list, `<h2>${title}</h2>${description}`);
          response.writeHead(200);
          response.end(template);
        })



      } else {
        fs.readdir('./data', function(error, filelist){
          fs.readFile(`data/${queryData.id}`, 'utf8', function(err, description){
            var title = queryData.id;
            var list = templateList(filelist);
            var template = templateHTMl(title, list, `<h2>${title}</h2>${description}`);
            response.writeHead(200);
            response.end(template);
          });
        });
      }
    } else {
      response.writeHead(404);
      response.end('Not found');
    }
});

중복되는 부분들을 함수로 만들어 주었다

 

body로 만들고 호출할 때 매개변수로 주었다

 

반복문부분도 함수로 만들고 매개변수는 filelist로 해준다 함수 안에 filelist가 없기 때문에 호출할때 그 값을 받아서 넣어주어야 한다

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

공부(13)  (0) 2021.08.25
공부(12)  (0) 2021.08.25
공부(10)  (0) 2021.08.24
공부(9)  (0) 2021.08.24
공부(8)  (0) 2021.08.24

글 목록 출력하기

      if(queryData.id === undefined){
        fs.readdir('./data', function(error, filelist){
          var title = 'Welcome';
          var description = 'Hello, Node.js';
          var list = '<ul>';
          var i = 0;
          while(i < filelist.length){
            list = list + `<li><a href="/?id=${filelist[i]}">${filelist[i]}</a></li>`;
            i = i+1;
          }
          list = list + '</ul>';

          var template = `
          <!doctype html>
          <html>
          <head>
            <title>WEB1 - ${title}</title>
            <meta charset="utf-8">
          </head>
          <body>
            <h1><a href="/">WEB</a></h1>
            ${list}
            <h2>${title}</h2>
            <p>${description}</p>
          </body>
          </html>
          `;
          response.writeHead(200);
          response.end(template);
        })
      } else{
        fs.readdir('./data', function(error, filelist){
          var title = 'Welcome';
          var description = 'Hello, Node.js';
          var list = '<ul>';
          var i = 0;
          while(i < filelist.length){
            list = list + `<li><a href="/?id=${filelist[i]}">${filelist[i]}</a></li>`;
            i = i+1;
          }
          list = list + '</ul>';

        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>
            ${list}
            <h2>${title}</h2>
            <p>${description}</p>
          </body>
          </html>
          `;
          response.writeHead(200);
          response.end(template);
          });
        });
      }

ul, li 부분을 바꾸어봤다

 

var list에 넣어줄것이다

 

i=0 변수를 주고

while(i<filelist.length){

 list += `<li><a href="/?id=$filelist[i]">${filelist[i]}</a></li>`;

 i += 1;

}

list += '</ul>';

을 해주면 ${list}를 써주기만 하면 위와같은 식들을 불러온다

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

공부(12)  (0) 2021.08.25
공부(11)  (0) 2021.08.25
공부(9)  (0) 2021.08.24
공부(8)  (0) 2021.08.24
공부(7)  (0) 2021.08.24

+ Recent posts