[새싹x코딩온] 웹 개발자 부트캠프 과정 4주차 회고

errorose·2024년 6월 11일

새싹x코딩온

목록 보기
5/11

Node.js의 모듈 중 http 모듈을 사용해서 서버를 만들어보자.


http 모듈을 이용해 서버 만들기

Node.js로 아래의 코드와 같이 서버를 구축해 보았다.
const http = require('http');
http.createServer(function(req, res){
    var _url = req.url;
    res.writeHead(200, {'Content-Type' : 'text/html'});
    res.write("<h2> Hello </h2>");
    res.end(`<p> ${_url} </p>`);
}).listen(8000, function(){
    console.log('8000포트에서 서버 실행중');
});

node 명령어로 실행하고 주소창에 http://127.0.0.1:8000/ 으로 접속하면 아래와 같은 페이지가 나오는걸 볼 수 있다.

이제 코드를 살펴보도록 하자.

1. 모듈 가져오기

const http = require('http');
  • require() : 메서드를 사용해서 Node.js의 내장 모듈인 http 모듈을 불러온다.
  • 불러온 http모듈을 변수 http에 담는다.

2. 서버 생성하기

http.createServer(function(req, res){
    // req : request(요청), res : response(응답)
}).listen(8000, function(){
    // 8000포트에서 서버 실행하고 대기
});
  • http.createServer() : http모듈을 http 변수에 담았기때문에 .을 사용해서 createServer()로 http 서버를 생성한다.
  • createServer() : http 모듈이 가지고 있는 서버를 만드는 기능이다.
  • listen(port, callback) : 서버를 첫번째 매개변수의 포트로 실행한다. (첫번째 인자는 포트번호, 두번째 인자는 콜백 함수를 받는다.)

3. 요청에 대한 이벤트 처리

	var _url = req.url;
    res.writeHead(200, {'Content-Type' : 'text/html'});
    res.write("<h2> Hello </h2>");
    res.end(`<p> ${_url} </p>`);
  • req.url : 클라이언트로부터 요청받은 url을 _url 변수에 담는다.

  • res.writeHead(200, {'Content-Type' : 'text/html'}) : 응답 헤더 작성
    -- 개발자도구 -> Network 에서 status에 200을 작성한다.

    -- Content-Type을 text/html로 설정하여 html파일로 변환하여 보여준다.

  • res.write() : 응답 본문 작성

  • res.end() : 응답 종료
    위의 코드에서는 <p> ${_url} </p> 를 반환하고 종료한다. 여기서 ${_url}은 위에 변수로 선언해놨던 _url에 담긴 클라이언트가 요청한 url을 말한다.

여기서 만약 127.0.0.1/ 이 아니라 127.0.0.1/about으로 요청하면

위와 같이 페이지에 /about이 작성되고 종료된다.

4. 서버 실행

}).listen(8000, function(){
    console.log('8000포트에서 서버 실행중');
});
  • listen(8000, function(){}) : 8000포트에서 서버를 실행시키고 '8000포트에서 서버 실행중' 을 로그로 찍는다.

Node.js로 서버를 구축해보았다. 헷갈리기도 하고 재밌기도 했다. 앞으로 계속 코드를 많이 쳐보면서 익숙해져야 할 것 같다. Node.js로 서버 만드는건 http 모듈로 만드는 것 외에 Express를 사용해서 만드는 법이 있는데 그 부분도 다음에 정리해 보겠다. 😊
profile
웹 개발 공부하는 코린이

0개의 댓글