

자바스크립트를 스크립트 언어 이상으로 프로그래밍 언어 역할을 할 수 있도록 지원하는 플랫폼
자바스크립트로 백엔드를 구현할 수 있음
Node.js로 간단한 웹 서버 만들기
//server.js
let http = require('http');
let url = require('url');
function start(route, handle){
function onRequest(request, response){
let pathname = url.parse(request.url).pathname;
route(pathname, handle, response);
}
http.createServer(onRequest).listen(7777);
}
exports.start = start;
server.js : 서버 생성 및 요청 대기http.creatServeronRequest 함수//router.js
function route(pathname, handle, response){
if (typeof handle[pathname] === 'function') {
handle[pathname](response);
} else {
response.writeHead(404, {'Content-Type': 'text/plain'});
response.write('404 Not Found');
response.end();
}
}
exports.route = route;
router.js : 경로에 따른 안내 역할route 함수handle 객체 안에 해당 주소와 연결된 함수가 있는지 확인//requestHandler.js
function main(response){
response.writeHead(200, {'Content-Type': 'text/plain'});
response.write('leekyuhyun\'s page');
response.end();
}
function myname(response){
response.writeHead(200, {'Content-Type': 'text/plain'});
response.write('leekyuhyun');
response.end();
}
let handle = {}; //key:value 형태의 객체
handle['/'] = main;
handle['/leekyuhyun'] = myname;
exports.handle = handle;
requestHandler.js : 실제 응답 데이터 처리main 함수myname 함수/leekyuhyun 주소 접속 시 'leekyuhyun'이라는 문구를 응답handle 객체//index.js
let server = require('./server');
let router = require('./router');
let requestHandler = require('./requestHandler');
server.start(router.route, requestHandler.handle);
index.js : 프로그램의 시작점server, router, requestHandler)을 require를 통해 불러옵니다.server.start 함수를 호출할 때, 라우팅 정보와 핸들러 정보를 인자로 넘겨주어 전체 시스템을 실행사용자가 브라우저에서 주소를 입력하면 server가 이를 감지하고, router가 주소를 확인한 뒤, requestHandler가 해당하는 내용을 그려내어 사용자에게 다시 보여주는 구조



메인 UI 화면