Node.js(2)

송예원·2024년 9월 19일
0

node.js

목록 보기
2/6
  1. App 제작- 파일을 이용해 본문 구현
  • fs.readFile(): 파일 읽기 기능
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'){
      return response.writeHead(404);
    }
    response.writeHead(200);
    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.end(template);
    })
 
 
});
app.listen(3000);
  1. JavaScript-Boolean

    • Boolean형: true, false
      ** true, false는 변수 이름으로 사용 불가
  2. JavaScript-비교연산자

    • 비교연산자: == (===), != (!==), >=, <=, >, <
      대입 연산자와의 차이 중요
      ** ==는 데이터 종류에 상관 없이 출력된 결과만 같으면 같음,
      ===는 데이터 종류까지 같아야 같음
  3. JavaScript-제어문

    • 제어문 사용시 시간의 흐름에 따라서 위에서부터 차례대로 실행되는 코드를 제어할 수 있음
    • 조건문, 반복문 +a
  4. JavaScript-조건문

  • 조건문: 조건에 따라서 코드의 실행 흐름을 바꿀 수 있게 해주는 제어문
if (조건문) {
	명령문;
    }
else {
	명령문;
    }
ex) 
console.log('A');
console.log('B');
if(false){
  console.log('C1'); // false이기때문에 실행되지 않음
} else {
  console.log('C2');
}
console.log('D');
>A
B
C2
D
  1. NodeJS-콘솔에서의 입력값
var args = process.argv; //콘솔창에서 배열로 입력받기
console.log(args[2]); // 배열의 세번째 값 출력
console.log('A'); 
console.log('B');
if(args[2] === '1'){ // 배열의 세번째 값이 1이라면
  console.log('C1');
} else {
  console.log('C2'); 
}
console.log('D');

** process.argv: 프로세스에 전달된 인수를 저장하는 배열

process 객체의 argv로 접근하면 시작할 때 뒤에 오는 인자 값들을 순서대로 사용할 수 있음
// node argument.js test1 test2
console.log(process.argv[0]);    // NODE_PATH\node.exe
console.log(process.argv[1]);    // ARGUMENT.JS_PATH\arguments.js
console.log(process.argv[2]);    // test1
console.log(process.argv[3]);    // test2
 
console.log(process.argv0);      // == argv[0] // .으로도 접근 가능
console.log(process.argv1);      // undefined

19.1. App 제작-Not found 구현

  • 사용자가 root로 접근했는지 아닌지 판별해
    해당 파일이 없다면 Not found출력
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;
		if(pathname === '/'){ // 사용자가 접속한 URL의 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 { // 사용자가 접속한 URL의 pathname가 /이 아니라면 404, Not found 출력
      response.writeHead(404);
      response.end('Not found');
    }
});
app.listen(3000);

19.2. App 제작-홈페이지 구현

  1. JavaScript-반복문
while(조건문){
	명령문;
    }

** while문 사용시 실행 중지 조건을 잘 설정하는 것이 매우 중요
ex)

console.log('A');
console.log('B');
 
var i = 0;
while(i < 2){
  console.log('C1');
  console.log('C2');
  i = i + 1;
}
 
console.log('D');

> A
B
C1
C2
C1
C2
D
  • for, forEach, do while 등의 조건문도 사용 가능
  1. JavaScript-배열

ex)

var arr = ['A','B','C','D'];
console.log(arr[1]);
console.log(arr[3]);
arr[2] = 3; //배열 수정 가능
console.log(arr);
console.log(arr.length);
arr.push('E'); 
console.log(arr);
> B
D
[ 'A', 'B', 3, 'D' ]
4
[ 'A', 'B', 3, 'D', 'E' ]

.length: 배열의 원소개수 구하는 함수
.push: 배열 끝에 데이터 추가하는 함수

  1. JavaScript-배열과 반복문
  • 배열은 복수의 데이터를 보관하는 그릇
    반복문은 복수의 반복되는 작업을 처리하는 도구
    ex)
var number = [1,400,12,34];
var i = 0;
var total = 0;
while(i < number.length){ // 배열의 길이 전까지 (인덱스는 0부터 시작)
  total = total + number[i];
  i = i + 1;
}
console.log(`total : ${total}`); 
total : 447
  1. Node.js에서 파일목록 알아내기

0개의 댓글