앞선 아티클에서 createServer( ) 메서드를 사용하면서 listen( ) 메서드를 이용해 포트 번호를 열고, 여기에 콜백 함수를 선언했었습니다.
const http = require('http');
http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8'});
res.write('<h1>Hello World</h1>');
res.end('<p>Hello Server</p>');
})
.listen(8080, () => {
console.log('8080번 포트 서버 대기 중');
});
/* 출력
8080번 포트 서버 대기 중
*/
이번에는 여기에서 listen 메서드에 콜백 함수를 넣지 않고, 포트 번호만 정의하겠습니다. 그리고 서버에 'listening'이라는 이벤트를 별도로 정의해 콜백 함수를 정의하겠습니다. 더불어 error 이벤트 리스너도 추가해서 정의합니다.
const { error } = require('console');
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8'});
res.write('<h1>Hello World</h1>');
res.end('<p>Hello Server</p>');
});
server.listen(8080);
server.on('listening', () => {
console.log('8080번 포트 서버 대기 중');
});
server.on('error', (error) => {
console.error(error);
});
실행 결과는 동일합니다.
더불어 (이론적인 부분이라 실제로 적용하는 경우는 드물지만) 포트 번호를 구분하여 한 번에 여러 서버를 실행하는 것도 가능합니다.
const http = require('http');
http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8'});
res.write('<h1>Hello World</h1>');
res.end('<p>Hello Server</p>');
})
.listen(8080, () => {
console.log('8080번 포트 서버 대기 중');
});
http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8'});
res.write('<h1>Hello World</h1>');
res.end('<p>Hello Server</p>');
})
.listen(8081, () => {
console.log('8081번 포트 서버 대기 중');
});
/* 출력
8080번 포트 서버 대기 중
8081번 포트 서버 대기 중
*/
이때 localhost:8080, localhost:8081을 각각 주소창에 입력해 실행이 가능합니다. 참고로 이런 경우에 포트 번호가 같다면 EADDRINUSE 에러가 발생합니다.
'Programming > Node.js' 카테고리의 다른 글
5. http 모듈로 서버 만들기 (2) - REST와 라우팅 [1] (0) | 2024.07.03 |
---|---|
5. http 모듈로 서버 만들기 (1) - 요청과 응답 [4] (0) | 2024.07.01 |
5. http 모듈로 서버 만들기 (1) - 요청과 응답 [2] (0) | 2024.06.28 |
5. http 모듈로 서버 만들기 (1) - 요청과 응답 [1] (0) | 2024.06.26 |
4. Node 기능 살펴보기 (11) - 예외 처리하기 [3] : 흔히 발생하는 에러 유형 (0) | 2024.06.25 |