node js - 서버 구축하기

// 1. 서버 사용을 위해서 http 모듈을 http 변수에 담는다. (모듈과 변수의 이름은 달라도 된다.)
var http = require('http');

// 2. http 모듈로 서버를 생성한다.
//    아래와 같이 작성하면 서버를 생성한 후, 사용자로 부터 http 요청이 들어오면 function 블럭내부의 코드를 실행해서 응답한다.
var server = http.createServer(function(request,response){

    response.writeHead(200,{'Content-Type':'text/html'});
    response.end('Hello node.js!!');

});

// 3. listen 함수로 8080 포트를 가진 서버를 실행한다. 서버가 실행된 것을 콘솔창에서 확인하기 위해 'Server is running...' 로그를 출력한다
server.listen(8080, function(){
    console.log('Server is running...');
});

CMD(mac은 터미널) 또는 명령어 실행창을 실행한다.

위의 코드를 작성한 server_basic 폴더로 이동한 후에 위에 작성한 코드를 실행한다.

정상적으로 작성하였다면 아래와 같이 실행된다.

image.png

http://localhost:8080

아래와 같이 브라우저에 출력된다면 정상적으로 실행된거다

image.png

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

    response.writeHead(200,{'Content-Type':'text/html'});
    response.end('Hello node.js!!');

});

function 내부 로직을 살펴보면 response로 넘어온 값으로 함수를 실행한다. 즉 callback 되었을 때 response 에 담겨저 오는 값은 require로 가져온 http 모듈처럼 내부적으로 함수를 가지고 있는 객체라는 의미이다.

여기서 response 객체는 서버로 웹브라우저나 또는 앱으로 부터 어떤 요청이 있을 때 요청한 사용자 측으로 값을 반환해 줄 때 사용하는 객체이다. 반대로 request 객체는 사용자가 요청한 내용이 담겨있는 객체이다

첫번째는 200 이라는 숫자값을,

두번째는 { } 중괄호 안에 { '키' : '값' } 형태의 값을 담는다.

response.writeHead(200, {'Content-Type':'text/html'});