본문 바로가기

IT 인터넷/node.js

[node js] 서버 만들기 코드 분석

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

const http = require('http');


const hostname = '127.0.0.1';

const port = 3000;


const server = http.createServer((req, res) => {

  res.statusCode = 200;

  res.setHeader('Content-Type', 'text/plain');

  res.end('Hello World\n');

});


server.listen(port, hostname, () => {

  console.log(`Server running at http://${hostname}:${port}/`);

}); 


이 코드는 node js의 대표 코드라고 할 수 있는 서버를 만들 수 있는 코드이다. 

코드를 하나씩 분석해보자.


var http = require('http')   //http 모듈을 불러온다.


var hostname = '127.0.0.1'; // 설정

var port = 3000; //설정


var server = http.createServer(); // CreateServer라는 메소드가 retrun한 객체를 server에 저장한다.


server.listen() // 위의 서버가 리턴한 객체는 listen이라는 메소드를 가질 수 있는데 이는 사용자가 어떤 port를 통해 접속 하고 어떤 hostname으로 접속하는 사용자를 받을 지 결정한다.


server.listen(port,hostname,function(){ //listen이 끝나면 callback함수가 호출된다.

console.log(`Server running at http://${hostname}:${port}/`);

})


거슬러 올라가 server를 보면 

var server = http.createServer(function(request,response){ //createServer는 callback함수를 가진다. 

response.setHeader('Content-Type', 'text/plain');

res.end('Hello World\n');

})

이는 위의 축약 코드와 동일하다. 


이를 정리해보면 다음과 같다. 


var server = http.createServer(function(request,response){

response.setHeader('Content-Type', 'text/plain');

res.end('Hello World\n');


}); // 우리가 조작할 수 있는 객체 리턴

server.listen(port, hostname, function(){ //callback함수 리슨이 끝나면 호출한다. 

console.log(`Server running at http://${hostname}:${port}/`);

});