본문 바로가기

Framework/Node.js

[Nodejs] 서버 실행하기 - 컴도리돌이

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