웹 브라우저가 server에 요청을하면, 그때마다 서버에서 발생하는 이벤트를 정의해야합니다.
그럴때는 callback 함수를 등록하면 됩니다.
표는 서버객체에서 사용할 수 있는 이벤트들입니다.
node.js server 객체에서 사용할 수 있는 event 입니다.
이벤트이름 |
설명 |
connection |
클라이언트가 접속하여 연결이 만들어질 때 발생하는 이벤트입니다. |
request |
클라이언트가 요청할 떄 발생하는 이벤트입니다. |
close |
서버를 종료할때 발생하는 이벤트입니다. |
var http = require('http');
//웹서버 객체 생성
var server = http.createServer();
//웹서버 시작하여 3000번 포트에서 대기 설정
var port = 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.dir(req);
res.writeHead(200, {"content-type":"text/html; charset=utf-8"});
res.write("<!DOCTYPE html>");
res.write("<html>");
res.write(" <head>");
res.write(" <title>응답페이지</title>");
res.write(" </head>");
res.write(" <body>");
res.write(" <h1>노드제이에스로부터 응답 페이지!</h1>");
res.write(" </body>");
res.end();
});
//서버종료 이벤트 처리
server.on('close', function(){
console.log('서버가 종료됩니다.');
});
서버 실행화면
웹브라우저와 클라이언트가 웹서버에 연결되면 connection 이벤트 발생! => server.on 에 등록한 콜백메소드가 호출되는것 확인가능합니다.
클라이언트가 특정path로 요청하면 request 이벤트가 발생합니다.
'request'라는 이름으로 콜백메소드를 등록했기에
"클라이언트 요청이들어왔습니다." 문구 확인가능합니다.
웹브라우져를 켜고, 127.0.0.1:3000 으로 접속합니다. 그러면 아래와같은 서버에서 응답, 그리고 웹브라우져에서 응답을 보실수있습니다.
서버(콘솔창) 응답.
웹페이지 응답.
또한, res객체에 writeHead(), write(), end() 메소드를 사용하면
클라이언트로 응답을 보낼 수 있음. end() 메소드는 응답을 보냈다는것을 의미합니다.
응답(response) 객체의 주요 메서드
메소드 이름 |
설명 |
writeHead(statusCode [, statusMessage][,headers])
|
응답으로 보낼 헤더를 만듭니다. |
write(chunk[, encoding][, callback]) |
응답본문(body)데이터를 만듭니다. 여러번 호출될 수 있습니다. |
end([data][,encoding][,callback]) |
클라이언트로 응답을 전송합니다. 파라미터에 데이터가 들어있다면 이 데이터를 포함시켜 응답을 전송합니다. 클라이언트의 요청이 있을 때 한번은 호출되어야 응답을 보내며, 콜백함수가 지정되면 응답이 전송된후 콜백함수가 호출됩니다. |
<<참고
Content-Type에 설정할 수 있는 대표적인 MIME Type
Content Type의 값 |
설명 |
text/plain |
일반 텍스트문서 |
text/html |
HTML문서 |
text/css |
CSS문서 |
text/xml |
XML 문서 |
image/jpeg, image/png |
JPEG파일, PNG 파일 |
video/mpeg, audio/mp3 |
MPEG 비디오파일, MP3음악파일 |
application/zip |
zip 압축파일 |