node.js ) 6일차 - 의존성
2016/12/16 - [컴퓨터/node.js] - node.js ) 1일차 - Hello World !
2016/12/16 - [컴퓨터/node.js] - node.js ) 2일차 - 웹서버 구동
2016/12/16 - [컴퓨터/node.js] - node.js ) 3일차 - 함수 작성
2016/12/17 - [컴퓨터/node.js] - node.js ) 4일차 - 이벤트형 처리
2016/12/17 - [컴퓨터/node.js] - node.js ) 5일차 - 모듈화
5일차의 모듈화는 오늘의 의존성 주입을 위한 것임
모든 웹서버 코드를 server.js 에 넣을수도 있지만.. server.js 의 덩치가 커질수록
우리는 점점 더 유지보수에 어려움을 겪게 될 것이다.
따라서 모든 프로그래밍이 그러하듯 노드도 잘게 썰어서 코딩해야 한다.
1. 6일차 폴더 생성
[root@localhost node_test]# mkdir node_6
[root@localhost node_test]# cd node_6
2. server.js 작성
[root@localhost node_6]# vi 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 for ' + pathname + ' received.');
route(pathname); // injected function call
response.writeHead(200, {'Content-Type' : 'text/plain'});
response.write('Hello World');
response.end();
}
http.createServer(onRequest).listen(8888);
console.log('server has started.');
}
exports.start = start;
3. router.js 작성
[root@localhost node_6]# vi router.js
----------------------
function route(pathname) {
console.log('about to route a request for ' + pathname);
}
exports.route = route;
4. index.js 작성
[root@localhost node_6]# vi index.js
---------------------------
var server = require('./server');
var router = require('./router');
server.start(router.route);
5. 실행
[root@localhost node_6]# node index.js
server has started.
접속하면 콘솔에 아래와 같이 찍힌다.