6. • 내가 직접 서버를 구현 해야 한다는데 (express)
• db 이용은 편리한가 (mysql)
• 비동기로의 작업... 불편한점이 없는가 (async)
• 쓰기쉬운 템플릿은 있는가 (ejs)
• 커뮤니티와 오픈소스가 풍부하다 (npm / github)
• 서버운영은... 각종 클라우드서버와 일반서버들의 지
원이 풍부하다 (본인의 서버가 있다면 더좋다.)
7. • javascript 만 잘 알면 되나? (각각의 라이브러리 이용
법을 학습해야 한다.)
• 너무많은 모듈중 내게 맞는 모듈은??
• 오픈소스의 페혜 : 기존에는 별로 신경 안썼던 것들
이 괜히 신경쓰인다. (귀가 얇아진다.)
• 결국은 좀 깊게, 좀더 고급지게 학습하려면 node.js
기본 api에 많은 시간투자가 필요하다.
8. Express
• Fast, unopinionated, minimalist web framework for
Node.js
• Node.js를 위한 빠르고 개방적인 간결한 웹 프레임워
크
• expressjs.com
• TJ Holowaychuk
• http://yisangwook.tumblr.com/post/90919749574/far
ewell-node-js-tj-holowaychuk
9. express 서버코드 기본
골격
• module require
• module setting 및 app setting
• middlewear 설정
• route 설정
• 서버 실행
10. module require
사용하게될 모듈 가져오기 (require 방법)
npm install module
var xxx = require(“aaa”);
내가 작성한 moudle
var xxx = require(__dirname + "/aaa");
11. module setting 및 app
setting
• 정적파일 설정
• 템플릿 엔진 설정
• db설정
• 파일 업로드 관련 설정
12. middlewear 설정
• 실행루틴의 중계역활 route 실행전 먼저 실행
• next를 통해 여러종류의 middlewear 장착가능
• 사용자 middlewear 는 req res 의 접급이 가능하므로
• req 를 이용 혹은 route 로직에서 사용할 사용자 함수를 작성할 수 있는 적당한 장소로 이용은
res.local 변수형태로 이용가능
middlewear 작성법
var xxx = function(req, res, next) {
...
next();
}
13. route 설정
• URL(URI) 요청에 따라 어플리케이션 응답방법을 결
정.
• 주로 외부파일로 설정
• 요청url에 따른 route의 분기
• req.body req.query req.param 를 이용 필요한 로직
실행후 client에 응답(res)
• db procedure call (db 로직은 프로시져로...)
14. 서버 실행
• 작동하도록 (listen)
• vhost를 이용한 서브호스팅 설정 등…
• 그밖에 많은 서버실행에 관여하는 설정등을 한다.