728x90
728x90
노드에 기본으로 들어 있는 http 모듈을 사용하면 웹 서버 기능을 담당하는 서버 객체를 만들 수 있다. http 모듈을 로딩했을 때 반환되는 객체에는 createServer() 메소드가 정의되어 있으며, 이 메소드를 호출하면 서버 객체를 만들 수 있다.
간단한 서버 구현하기
서버 객체의 listen() 메소드를 호출하면 웹 서버가 시작되는데, 서버를 시작할 때는 포트를 3000번으로 지정하여 해당 포트에서 클라이언트의 요청을 대기한다. listen() 메소드를 호출할 때 전달하는 두 번째 파라미터는 콜백 함수로, 웹서버가 시작되면 호출된다.
메소드 | 설명 |
listen(port,[hostname],[backlog],[callback]) | 서버를 실행하여 대기시킨다. |
close([callback]) | 서버를 종료시킨다. |
var http = require('http');
var server = http.createServer();
var port = 3000;
server.listen(port, function(){
console.log('웹 서버가 시작되었습니다. : %d ' ,port);
});
클라이언트가 웹 서버에 요청할 때 발생하는 이벤트 처리 방법
웹 브라우저와 같은 클라이언트가 웹 서버에 연결되면 connection 이벤트가 발생한다. 그러므로 on() 메소드를 호출할 때 첫 번째 파라미터로 connection 이벤트 이름을 전달하고, 두 번째 파라미터로 콜백 함수를 전달한다. 연결이 만들어져 콜백 함수가 호출될 때는 socket 객체가 파라미터로 전달된다. 이 객체는 클라이언트 연결 정보를 담고 있으므로 address() 메소드를 호출하여 클라이언트의 IP와 포트 정보를 확인 가능하다.
이벤트 | 설명 |
connection | 클라이언트가 접소하여 연결이 만들어질 때 발생하는 이벤트 |
request | 클라이언트가 요청할 때 발생하는 이벤트 |
close | 서버를 종료할 때 발생하는 이벤트 |
var http = require('http');
//웹 서버 객체를 만듬.
var server = http.createServer();
var port = 3000;
//웹서버를 시작하여 3000번 포트에서 대기하도록 설정.
server.listen(port, function(){
console.log('웹 서버가 시작되었습니다. : %d ' ,port);
});
//클라이언트 요청 이벤트 처린
server.on('connection',function(socket){
var addr = socket.address();
console.log('클라이언트가 접속했습니다. : %s, %d',addr.address,addr.port);
});
//클라이언트 요청 이벤트 처리
server.on('request',function(req,res){
console.log('클라이언트 요청이 들어왔습니다.');
console.log(req);
});
// 서버 종료 이벤트 처리.
server.on('close',function(){
console.log('서버가 종료됩니다.');
});
[참고 문헌] do it! node.js 프로그래밍
728x90
728x90
'Framework > Node.js' 카테고리의 다른 글
[Nodejs] 우분투에서 MongoDB 사용하기 , VS code에서 mongoDB 사용하기 - 컴도리돌이 (0) | 2021.08.01 |
---|---|
[Nodejs] 여러 개의 미들웨어 등록하기 - 컴도리돌이 (0) | 2021.07.31 |
[Nodejs] 익스프레스(express)로 웹 서버 구현 - 컴도리돌이 (0) | 2021.07.30 |
[Nodejs] 우분투에서 Node.js 환경 만들기 - 컴도리돌이 (0) | 2021.07.28 |