Node.js

  1. html
  2. css
  3. javascript
  4. deeperjs
  5. node.js
  6. site
  7. web
  8. wish list

기타

  1. \ : 코드 안에서만 줄을 바꿀시
    \n : 코드 밖에서만 줄을 바꿀시

literal

  1. template literal : 물결무늬 밑에있는 따옴표(grave accent)
  2. 변수는 ${variable} : 변수로 인식
  3. 숫자의 덧셈도${1+1} : 2로 나옴

url

  1. http :// opentutorials.org : 3000 / main ? id=HTML&page=12
  2. http = protocol
  3. opentutorials.org = host(domain) : 특정한 인터넷에 연결된 컴퓨터를 가리키는 주소
  4. 3000 = port(포트번호/ 디폴트:80), 한 대의 컴퓨터 안에 여러대의 서버가 있을 수 있다.
    클라이언트가 접속했을 때 그 중의 어떤 서버와 통신할지 결정. (300번 포트와 연결된 서버와 통신)
  5. main = path(어떤 Directory의 어떤 file인지)
  6. id=HTML&page=12 = query string
  7. query string : 시작은 물음표로(?), 값과 값 사이는 &(ampersend) 사용, 값의 이름과 값은 =(equal)로 구분
  8. url,fs와 http는 모듈.
    모듈이란? node.js가 가지고 있는 수많은 기능들을 비슷한 것들끼리 그룹핑 해놓은걸 모듈이라고 한다
    var url = require('url'); : require은 모듈을 불러옴.
    앞으로 url이라는 변수로 url이라는 모듈을 불러올거야 라는 뜻.
  9. var url = require('url');
    var _url = request.url;
    var queryData = url.parse(_url,true).query;
    console.log(queryData.id);
    response.end(queryData.id);
    query string 부분의 값이 표시된다.
  10. parse:분석
    Parsing Query String in node js

CRUD(Create Read Update Delete)

  1. 정보를 다루는 핵심적인 요소.
  2. 생성과 읽기(Create and Read)를 먼저 익히고 Update와 Delete를 배우자.
  3. fs.read(path[,options],callback) : 파일 읽기
  4. const fs = require('fs');
    fs.readFile('sample.txt', 'utf8', function(err,data){
      console.log(data);
    });
  5. cd.. : 부모 디렉토리
  6. dir/w : 디렉토리 내부 파일 보기

본문도 바꾸기

  1. data폴더를 만들어 각 페이지의 본문 내용만 복사해서 파일명을 query string의 이름과 동일하게
    만들어서 저장. fs.readFile(`data/${queryData.id}`,'utf8',function(err,description) 으로 query string과 파일명이 일치하는 파일을 읽게하고 template 안에 파일 즉, 본문이 들어갈 부분에
    ${description}을 입력한다.

콘솔에서의 입력값

  1. IO(input and output)
  2. input의 종류 : Parameter = 입력되는 정보의 형식/ argument = Parameter에 맞게 입력된 값.
  3. web에서는 url parmeter를 통해 입력 값(argument)을 주고 그 결과를 HTMl로 출력(output).
  4. output : cosole에서는 그 값을 console 화면에 출력, 프린트로 출력, 파일로 저장
  5. var args = process.argv;
    console.log(args);

    배열을 출력. 첫번째 자리에는 node js runtime이 어디에 위치하고 있는지 알려줌.
    두번째 자리에는 실행시킨 이 파일에 대한 경로 제공.
    세번째 자리부터 콘솔에서 실행시킨 파일명 뒤에 작성한 입력값을 출력.
    따라서, var args = process.argv;
    console.log(args[2]);

    이라고 파일을 수정하고 콘솔에 node paramters.js zheng 이라고 치면 'zheng'이라는 배열의 값만 출력.
  6. if(args[2]==='1'){
      console.log('a');
    }else{
      console.log('b');
    }

    배열의 인덱스 2의 값을 비교하여 결과를 출력하는 조건문.
    콘솔에 입력한 숫자는 문자로 인식.

Not found 구현

  1. console.log(url.parse(_url,true));
    Url {
      protocol: null,
      slashes: null,
      auth: null,
      host: null,
      port: null,
      hostname: null,
      hash: null,
      search: '?id=HTML',
      query: [Object: null prototype] { id: 'HTML' },
      pathname: '/',
      path: '/?id=HTML',
      href: '/?id=HTML'
    }
    이런 배열을 출력.
  2. pathname : 경로. 말그대로 파일을 서버에서 불러올때 그 파일이 위치한 곳을 나타냄/로 이루어짐.
    path : query string을 포함해서 pathname 뒤에 오는 모든 것.
    if(pathname === '/'){
    response.writeHead(200);
    response.end(template);
    }else{
    response.writeHead(404);
    response.end('Not found');
    }
    절대경로로 파일을 찾을 경우 Not Found로 보내버림.
    response.writeHead(200) = Server가 browser한테 파일을 성공적으로 전송했다. response.writeHead(404) = 파일을 찾을 수 없음.

synchrodous(동기) 와 asynchronous(비동기)

  1. 동기 : 일을 하나 끝내면 다음일로 한번에 하나씩 순차적으로 하는 것.
  2. 비동기 : 일을 하나 시켜 놓고 끝나면 알리게 한다음 그동안 다른일들을 처리하는 것.
    효율적이지만 매우 복잡.