
Node.js의 모듈 중 http 모듈을 사용해서 서버를 만들어보자.
const http = require('http');
http.createServer(function(req, res){
var _url = req.url;
res.writeHead(200, {'Content-Type' : 'text/html'});
res.write("<h2> Hello </h2>");
res.end(`<p> ${_url} </p>`);
}).listen(8000, function(){
console.log('8000포트에서 서버 실행중');
});
node 명령어로 실행하고 주소창에 http://127.0.0.1:8000/ 으로 접속하면 아래와 같은 페이지가 나오는걸 볼 수 있다.


이제 코드를 살펴보도록 하자.
const http = require('http');
require() : 메서드를 사용해서 Node.js의 내장 모듈인 http 모듈을 불러온다.http.createServer(function(req, res){
// req : request(요청), res : response(응답)
}).listen(8000, function(){
// 8000포트에서 서버 실행하고 대기
});
http.createServer() : http모듈을 http 변수에 담았기때문에 .을 사용해서 createServer()로 http 서버를 생성한다.createServer() : http 모듈이 가지고 있는 서버를 만드는 기능이다.listen(port, callback) : 서버를 첫번째 매개변수의 포트로 실행한다. (첫번째 인자는 포트번호, 두번째 인자는 콜백 함수를 받는다.) var _url = req.url;
res.writeHead(200, {'Content-Type' : 'text/html'});
res.write("<h2> Hello </h2>");
res.end(`<p> ${_url} </p>`);
req.url : 클라이언트로부터 요청받은 url을 _url 변수에 담는다.
res.writeHead(200, {'Content-Type' : 'text/html'}) : 응답 헤더 작성
-- 개발자도구 -> Network 에서 status에 200을 작성한다.

-- Content-Type을 text/html로 설정하여 html파일로 변환하여 보여준다.
res.write() : 응답 본문 작성

res.end() : 응답 종료
위의 코드에서는 <p> ${_url} </p> 를 반환하고 종료한다. 여기서 ${_url}은 위에 변수로 선언해놨던 _url에 담긴 클라이언트가 요청한 url을 말한다.

여기서 만약 127.0.0.1/ 이 아니라 127.0.0.1/about으로 요청하면

위와 같이 페이지에 /about이 작성되고 종료된다.
}).listen(8000, function(){
console.log('8000포트에서 서버 실행중');
});
listen(8000, function(){}) : 8000포트에서 서버를 실행시키고 '8000포트에서 서버 실행중' 을 로그로 찍는다.