//다른 HTTP 요청이 코드의
//다른 부분을 가리키도록 하는 것을 “라우팅(routing)”
// 요청 url get/pos 파라미터를 router로 전달
// 웹서버로 요청보내는 형식
// http://localhost:8888/start?foo=bar&hello=world
// URL path 기준으로 요청 구분하기
var http = require("http");
var url = require("url");
function start() {
function onRequest( request, response ) {
var pathname = url.parse(request.url).pathname;
console.log("Request"+pathname+" received");
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("HelloWorld");
response.end();
}
http.createServer(onRequest).listen(8888);
console.log("server has started");
}
exports.start = start;
// router 만들기
// node index.js(서버 실행) -> url 요청 -> http server가 router를 사용하여 pathname을 넘김
router.js
function route(pathname) {
console.log("About to route a request for " + pathname);
}
exports.route = route;
index.js
var server = require("./server");
var router = require("./router");
server.start(router.route);
server.js
var http = require("http");
var url = require("url");
function start(route) {
function onRequest( request, response ) {
var pathname = url.parse(request.url).pathname;
console.log("Request"+pathname+" received");
route(pathname);
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("HelloWorld");
response.end();
}
http.createServer(onRequest).listen(8888);
console.log("server has started");
}
exports.start = start;
// request handler로 라우팅(routing) 하기
request_handler.js
function start() {
console.log("Request handler 'start' was called");
}
function upload() {
console.log("Request handler 'upload' was called");
}
exports.start = start;
exports.upload = upload;
router.js
function route(pathname, handle) {
console.log("About to route a request for "+pathname);
if ( typeof handle[pathname] === 'function' ) {
handle[pathname]();
}
else{
console.log("No request handler founder for " + pathname );
}
}
exports.route = route; // exports 외부에서 호출가능하게함
server.js
var http = require("http");
var url = require("url");
function start(route, handle) {
function onRequest( request, response ) {
var pathname = url.parse(request.url).pathname;
console.log("Request"+pathname+" received");
route( pathname, handle);
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("HelloWorld");
response.end();
}
http.createServer(onRequest).listen(8888);
console.log("server has started");
}
exports.start = start;
index.js
var server = require("./server");
var router = require("./router");
var requestHandlers = require("./request_handler");
var handle = {}
handle["/"] = requestHandlers.start;
handle["/start"] = requestHandlers.start;
handle["/upload"] = requestHandlers.upload;
server.start(router.route, handle);
'node.js' 카테고리의 다른 글
[node.js 4.x]간단한 로그인 창 구현 (0) | 2016.02.14 |
---|---|
request handler가 응답하게 만들기 (0) | 2015.02.05 |
index.js 파일로 서버 실행 시키기 ( http 요청 받기 ) (0) | 2015.02.05 |
함수 호출하기 (0) | 2015.02.05 |
웹서버 만들기 (0) | 2015.02.05 |