ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Node.js] 서버 만들기 : http 모듈, require, listen
    Node.js 2023. 11. 29. 13:10

    노드는 다양한 기능을 기본적으로 제공한다.

    이런 기능들을 모아둔 객체를 모듈이라고 한다.

    그중 http 모듈을 이용해 오늘 서버를 만들어본다.

    1. http 모듈 불러오기

    const http = require("http");

     

    • require
      • 특정 경로의 파일을 불러오는 키워드
      • 파일의 절대 또는 상대경로를 파라미터로 받는다. 이 때 파일의 확장자는 자동으로 js가 된다.
      • 경로를 생략하면 글로벌 모듈을 수색

     

    2. http 모듈로 서버 생성하기

    const server = http.createServer(rqListener);
    • http.createServer
      • 서버를 생성하는 메서드
      • 모든 요청을 매개변수로 들어오는 콜백함수로 보낸다.
      • 만들어진 서버는 변수(여기서는 server)에 저장해 계속 사용한다.

    3. 서버의 요청을 수행하는 콜백함수 만들기

    function rqListener(req, res) {
    	console.log(req);
    }
    • 2에서 createServer의 파라미터로 rqListener를 지정했다. (변수명, 함수명은 자유롭게 변경해도 된다)
    • 이 콜백함수는 두 가지 인수를 필요로 한다.
      • request : 서버로 들어오는 요청. 노드 서버에서 자동으로 입력된다.
      • response : 서버의 응답
    • 여기서는 단순히 서버의 요청을 콘솔에 출력해본다.

     

    3.1. 무기명 함수로 다음과 같이 서버와 콜백함수를 만들 수 있다.

    // 일반함수 버젼
    const server = http.createServer(function(req, res) {
    	console.log(req);
    });
    
    // 화살표 함수 버젼
    const server = http.createServer((req, res) => {
    	console.log(req);
    });

     

    4. listen으로 서버를 유지

    server.listen(3000);
    • 어떤 창구로 서버에 접근할 지를 정해야 한다. 이를 포트를 설정한다고 한다.
    • 이를 통해 서버가 종료되지 않고 계속 실행되며 듣도록 한다
    • 위 코드는 3000번 포트를 사용한다.
    • 실무에서는 대개 포트를 지정하지 않으며, 기본적으로 80 포트를 사용한다.

     

    [ 전체코드 ]

    const http = require("http");
    //require : 특정 경로의 파일을 불러오는 키워드. 자동으로 js 확장자가 붙음.
    // 경로를 생략하면 글로벌 모듈을 수색
    
    function rqListener(req, res) {
      // creatServer 콜백 함수 설정
      console.log(req);
    }
    
    const server = http.createServer(rqListener); //서버를 생성. 모든 요청을 콜백함수로 보냄.
    
    server.listen(3000);
    //스크립트를 바로 종료하지 않고 계속 실행되면서 듣도록 함
    //첫번째 인수 : 듣고자 하는 포트, 실무에서는 대개 입력하지 않으며 기본적으로 80 포트 사용
    node app.js

    노드로 앱을 실행하고

     

     

    브라우저로 localhost:3000로 접속하면

    node를 실행시킨 창에

    길고 복잡한 브라우저의 요청이 출력된다.

Designed by Tistory.