개발 공부/Node.js(웹)
노드js[Node.js] 웹 서버 구축하기 (window)
리그캣
2018. 1. 18. 20:43
오늘은 node.js 를 이용하여 간단한 웹 서버를 만들거에요.
웹 서버에 대해 간단히 알아보고 싶다하면 이 페이지를 보시면 돼요!!
노드에는 기본으로 http 모듈을 사용하여 웹 서버 기능을 담당하는 서버 객체를 만들 수 있어요.
다음을 따라해 볼까요?
출처: do it node.js 프로그래밍
test1.js
var http = require('http');
//웹 서버 객체를 만듭니다
var server = http.createServer();
//웹 서버를 시작하여 3000번 포트에서 대기합니다.
var port = 3000;
server.listen(port, function(){
console.log('웹 서버가 시작되었습니다. : %d', port);
});
웹 서버 객체를 만들고 웹서버를 시작하는 코드입니다.
실행하면 다음과 같은 화면이 출력됩니다.
웹 서버가 시작되었습니다. : 3000
웹 서버가 실행되고 대기하고 있는 것을 볼 수 있습니다.
test2.js
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);
});
//서버 종료 이벤트 처리
server.on('close', function(){
console.log('서버가 종료됩니다.');
});
이번에는 웹서버를 만들고 대기하면서 클라이언트 접속이 오면 해당 이벤트에 맞게 출력해주는 소스코드 입니다.
'F5'키를 눌러 실행시키면 'test1.js' 와 별반 차이점이 없습니다.
웹 서버가 시작되었습니다. : 3000
그러나 웹 브라우저 창에 "http://localhost:3000" 을 입력해 줍니다.
이때 localhost는 현재 나의 ip 주소이고 3000 은 3000번 port로 접속하겠다는 뜻입니다.
다음과 같은 화면을 볼 수 있습니다.
웹브라우저는 아직 설정한게 없어서 나타나지 않지만 서버측에서는 클라이언트가 들어왔는지 확인 할 수 있습니다.
test3.js
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('클라이언트 요청이 들어왔습니다.');
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.write("</html>");
res.end();
});
//서버 종료 이벤트 처리
server.on('close', function(){
console.log('서버가 종료됩니다.');
});
이런식으로 request 이벤트를 처리하는 콜백함수를 수정하시면 웹브라우저는 다음 화면은 출력합니다.
이런식으로 외부에서도 해당 ip를 통하여 페이지를 확인할 수 있습니다. ~^^