-
Node.js] 서버 만들기 : http 모듈, require, listenNode.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를 실행시킨 창에
길고 복잡한 브라우저의 요청이 출력된다.
'Node.js' 카테고리의 다른 글
Node.js] 모듈 시스템 사용하기 (1) 2023.12.04 Node.js | javascript] 이벤트 기반 코드 실행 | Event-Driven (0) 2023.12.04 Node.js] 라우터 요청 : url 루트의 요청에 따라 기능이 달라지는 간단한 서버 (0) 2023.12.01 Node.js] 서버의 요청 및 응답 확인하기 (1) 2023.11.30 1. Node.js란 무엇인가, 설치와 간단한 실행 (0) 2023.11.21 - require