# Node.js

# Node.js

by jihoon kim

HTML

<pre id="contents">
#Node.js
##참고 : https://velopert.com/241
# Node.js? << https://nodejs.org/ko/
    - Chrome V8 JavaScript 엔진으로 빌드된 JavaScript Runtime.
    - 2009년에 Ryan Dahl에 의해 개발.
    - 이벤트 기반, 논 블로킹 I/O 모델.
    - Node.js의 패키지 생태계인 npm은 세계에서 가장 큰 오픈 소스 라이브러리.

    - 비동기 I/O 처리 .
    - 빠른 속도
    - 단일 쓰레드 / 뛰어난 확장성
    - 노  버퍼링
    - 라이센스: MIT License

# REPL (Read Eval Print Loop)
    읽고 값을 계산하고 출력하는 일을 반복하는 행위를 REPL 루프라고한다.
    Node.js는 REPL 환경은 테스팅 및 디버깅에 이용된다.
    - REPL Command
        Ctrl+C          – 현재 명령어 종료
        Ctrl+C (2번)    – Node REPL 종료
        Ctrl+D          – Node REPL 종료
        위/아래 키      – 명령어 히스토리 탐색.
        Tab             – 현재 입력란에 쓴 값으로 시작하는 명령어 / 변수 목록을 확인합니다.
        .help           – Print this help message
        .break          – 멀티 라인 표현식 입력 도중 입력 종료
        .clear          – .break 와 동일
        .save filename  – Node REPL 세션을 파일 저장
        .load filename  – Node REPL 세션에 파일 로드
        .editor         - Enter editor mode

# 윈도우모듈 설치함.
    1. https://nodejs.org/ko/
    2. 다운로드.
    3. 설치 실행.

# 테스트실행.
    1. Win + R
    2. cmd [Enter]
    3. node [Enter]
    4. 1+1[Enter]

# Hello World.
    1. app.js 작성( C:\nodetest\app.js )
```javascript
    const http = require('http');

    const hostname = '127.0.0.1';
    const port = 3000;

    const server = http.createServer((req, res) => {
      res.statusCode = 200;
      res.setHeader('Content-Type', 'text/plain');
      res.end('Hello World\n');
    });

    server.listen(port, hostname, () => {
      console.log(`Server running at http://${hostname}:${port}/`);
    });
```

    2. Node실행
        1. Win + R
        2. cmd [Enter]
        3. cd C:\nodetest\[Enter]
        4. node app.js [Enter]
        5. http://localhost:3000

# 변수사용.
    $ node
    > x = 10
    10
    > var y = 5
    undefined
    > x + y
    15
    > console.log("Value is " + ( x + y ))
    Value is 15
    undefined

# Multi-Line 표현식 사용
  do-while 루프 REPL
    $ node
    > var x = 0
    undefined
    > do {
  ...