http 모듈을 이용한 server 구현

2020. 8. 15. 00:53✅ STUDY/node.js

Node.js 개념 정리

http 모듈을 이용한 아주아주 간단한 server 구현


저는 아직 왕초보 서버 개발ㅈㅏ...이므로 http모듈을 이용해 간단한 server를 만들어보려고 해요!

먼저, 지금 만들고자하는 server는 무엇일까요?

위 그림처럼, 클라이언트에서 서버로 요청을 보내고, 서버에서는 요청의 내용을 읽고 처리한 뒤 클라이언트에게 응답을 보냅니다.

 

따라서, 서버에는 요청을 받는 부분과 응답을 보내는 부분이 있어야합니다!
요청과 응답은 이벤트 방식이라고 생각하면 됩니다.
클라이언트로부터 요청이 왔을 때 어떤 작업을 수행할지 이벤트 리스너를 미리 등록해두어야 합니다.

이벤트 리스너를 가진 노드 서버를 만들어보겠습니다.

const http = require('http');

http.createServer((req, res) => {
    //여기에 어떻게 응답할지 적기
});

http 서버가 있어야 웹 브라우저의 요청을 처리할 수 있으므로 http모듈을 사용했습니다.
첫번째 행에서 http모듈을 가져오고있습니다.

createServer는 http모듈의 메서드입니다. 인자로 요청에 대한 콜백 함수를 넣을 수 있습니다.

createServer의 콜백 부분의 req, res 매개변수를 보면 req 객체는 요청에 관한 정보들을, res 객체는 응답에 관한 정보들을 담습니다.

위 코드에서 추가로 응답을 보내는 부분과 서버 연결 부분을 추가하겠습니다.

const http = require('http');

http.createServer((req, res) => {
    res.write('<h1>Hello Node!</h1>');
    res.end('<p>Hello Server!</p>');
}).listen(8080, () => {
    console.log('8080번 포트에서 서버 대기중입니다!');
});

 

createServer 메서드 뒤에 listen메서드를 붙이고 포트 번호와 포트 연결 완료 이후 실행될 콜백 함수를 넣어줍니다.

res는 response(응답)을 의미하므로 클라이언트로 보내진다고 생각하면 됩니다.
res.write의 첫번째 인자는 클라이언트로 보낼 데이터입니다.
res.end의 첫번째 인자도 클라이언트로 보낼 데이터입니다. 그러나 클라이언트로 보내고, 응답을 종료하는 메서드입니다.

 

이제 실행을 시킵시다!

터미널 창에, 이 자바스크립트 파일(.js)을 node로 실행시키겠습니다.

 

[콘솔]

프로젝트 경로> node server1.js

 

[결과 화면]

 

 

 


참고) 길벗출판사 Node.js 교과서

 

'✅ STUDY > node.js' 카테고리의 다른 글

REST API가 뭐야?  (0) 2020.08.15
Node.js 개념과 특징  (0) 2020.08.15