Node.js : 간단 웹서버 구동하기 예제


목차

  1. 간단한 웹서버 구동
  2. html페이지가 있는 웹서버 구동


간단한 웹서버 구동

  • 웹서버는 http 라는 모듈을 통해서 구동한다.
  • http 모듈 공식문서 : https://nodejs.org/api/http.html
  • 앞선 시간에 package.json scripts.test 에 node app.js 설정을 했으므로, app.js파일에 아래처럼 코딩해본다.
    • Line 19${hostname}:${port}는 Line 4, 5에 정의된 hostname과 port를 호출하기 위한 쓰임이며, 따옴표 안에서 어떻게 썼냐고 물어본다면 쌍따옴표 따옴표의 그 따옴표를 쓴 것이 아니고, '~'로 잘 알려진 ` 키로 묶었기 때문에 이런 쓰임이 가능하다.

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      // node.js의 http모듈을 변수 http로 추출합니다.
      const http = require('http');
       
      const hostname = '127.0.0.1';
      const port = '1337';
       
      // http모듈의 createServer 함수를 호출하여 서버를 생성합니다.
      // req: request. 웹 요청 매개변수, res: response. 웹 응답 매개변수
      http.createServer(function (req, res) {
          // writeHead: 응답 헤더를 작성합니다.
          // 200: 응답 성공, text/html: html문서
          res.writeHead(200, {'Content-Type''text/html'});
          // end: 응답 본문을 작성합니다.
          res.end('Hello World111');
          
      // listen: 매개변수로 포트와 호스트를 지정합니다.    
      }).listen(port, hostname, 
      () => {    
          console.log(`Server running at http://${hostname}:${port}/`);
      });
      cs


  • 이제 콘솔에서 npm test (=node app.js) 를 입력해 보자.
C:\Users\TSPark\Documents\Blog\naver\170603_nodejs\nodeServer>npm test

> node_server@1.0.0 test C:\Users\TSPark\Documents\Blog\naver\170603_nodejs\node
Server
> node app.js

Server running at http://127.0.0.1:1337/
  • 실행된 모습


  • 서버 종료는 콘솔에서 Ctrl + C을 누르고 y 눌러서 끝내면 된다.
    일괄 작업을 끝내시겠습니까 (Y/N)? y
    



html페이지가 있는 웹서버 구동

  • 웹 서버 구동 시 html페이지가 출력되게 하는 실습을 할 것이다.
  • html페이지를 불러오는 것, 즉 파일을 불러오는 것이기 떄문에 node.js 모듈 중 fs이라는 모듈을 불러와서 코딩한다.
  • fs 모듈 공식문서 : https://nodejs.org/api/fs.html
  • package.json에서 scripts.start를 추가해서 node app_fs.js을 입력시키고 app_fs.js을 코딩 해 보자.
    package.json
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    {
      "name": "node_server",
      "version": "1.0.0",
      "description": "Node.js Server Practice",
      "main": "app.js",
      "scripts": {
        "test": "node app.js",
        "start": "node app_fs.js"
      },
      "repository": {
        "type": "git",
      },
      "keywords": [
        "nodejs",
        "test",
        "tspark"
      ],
      "author": "tspark",
      "license": "ISC",
      "bugs": {
      },
    }
    cs

    app_fs.js
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    // node.js의 http모듈을 변수 http로 추출합니다.
    const http = require('http');
    var fs = require('fs');
     
    const hostname = '127.0.0.1';
    const port = '1337';
     
    // http모듈의 createServer 함수를 호출하여 서버를 생성합니다.
    // req: request. 웹 요청 매개변수, res: response. 웹 응답 매개변수
    http.createServer(function (req, res) {
        
        fs.readFile('./blog_template_html.html''utf8'function(err, data) {
            // the data is passed to the callback in the second argument
            //console.log(data);
            // writeHead: 응답 헤더를 작성합니다.
            // 200: 응답 성공, text/html: html문서
            res.writeHead(200, {'Content-Type''text/html'});
            // end: 응답 본문을 작성합니다.
            res.end(data);
        });
        // listen: 매개변수로 포트와 호스트를 지정합니다.
    }).listen(port, hostname, () => {
        console.log(`Server running at http://${hostname}:${port}/`);
    });
    cs


  • 콘솔에서 npm start (=node app_fs.js)을 입력해서 웹서버 시작

    C:\Users\TSPark\Documents\Blog\naver\170603_nodejs\nodeServer>npm start
    
    > node_server@1.0.0 start C:\Users\TSPark\Documents\Blog\naver\170603_nodejs\nod
    eServer
    > node app_fs.js
    
    Server running at http://127.0.0.1:1337/
  • 실행된 모습



  • 서버 종료는 콘솔에서 Ctrl + C을 누르고 y 눌러서 끝내면 된다.
    일괄 작업을 끝내시겠습니까 (Y/N)? y
    




+ Recent posts