Download - Nodejs 발표자료
NODE.JSEXPRESS 를 이용한 웹 어플리케이션 만들기
why node.js ?
node.js 작업전 사전조사장점 / 단점
• 내가 직접 서버를 구현 해야 한다는데 (express)
• db 이용은 편리한가 (mysql)
• 비동기로의 작업 ... 불편한점이 없는가 (async)
• 쓰기쉬운 템플릿은 있는가 (ejs)
• 커뮤니티와 오픈소스가 풍부하다 (npm / github)
• 서버운영은 ... 각종 클라우드서버와 일반서버들의 지원이 풍부하다 ( 본인의 서버가 있다면 더좋다 .)
• javascript 만 잘 알면 되나 ? ( 각각의 라이브러리 이용법을 학습해야 한다 .)
• 너무많은 모듈중 내게 맞는 모듈은 ??
• 오픈소스의 페혜 : 기존에는 별로 신경 안썼던 것들이 괜히 신경쓰인다 . ( 귀가 얇아진다 .)
• 결국은 좀 깊게 , 좀더 고급지게 학습하려면 node.js 기본 api 에 많은 시간투자가 필요하다 .
Express• Fast, unopinionated, minimalist web
framework for Node.js
• Node.js 를 위한 빠르고 개방적인 간결한 웹 프레임워크• expressjs.com
• TJ Holowaychuk
• http://yisangwook.tumblr.com/post/90919749574/farewell-node-js-tj-holowaychuk
express 서버코드 기본골격• module require
• module setting 및 app setting
• middlewear 설정• route 설정• 서버 실행
module require사용하게될 모듈 가져오기 (require 방법 )
npm install module
var xxx = require(“aaa”);
내가 작성한 moudle
var xxx = require(__dirname + "/aaa");
module setting 및 app setting
• 정적파일 설정 • 템플릿 엔진 설정• db 설정• 파일 업로드 관련 설정
middlewear 설정• 실행루틴의 중계역활 route 실행전 먼저 실행• next 를 통해 여러종류의 middlewear 장착가능• 사용자 middlewear 는 req res 의 접급이 가능하므로• req 를 이용 혹은 route 로직에서 사용할 사용자 함수를 작성할 수 있는 적당한 장소로 이용은
res.local 변수형태로 이용가능
middlewear 작성법 var xxx = function(req, res, next) {
...
next();
}
route 설정• URL(URI) 요청에 따라 어플리케이션 응답방법을 결정 .
• 주로 외부파일로 설정• 요청 url 에 따른 route 의 분기• req.body req.query req.param 를 이용 필요한 로직 실행후 client 에 응답 (res)
• db procedure call (db 로직은 프로시져로 ...)
서버 실행• 작동하도록 (listen)
• vhost 를 이용한 서브호스팅 설정 등…• 그밖에 많은 서버실행에 관여하는 설정등을 한다 .
앱 디렉토리기본구조
Expressservice
workflow
view templete ejshttp://www.embeddedjs.com/
쇼핑몰 간략소개• db table 스키마 소개• 간략 기능 소개• api 이용로그인 (passport 를 통한 기능구현 )
• 도로명 우편번호 api https://postcodify.poesis.kr/
작성 소스 간략 설명
사용된 moudle• express• body-parser• cookie-parser• express-session• ejs• mysql• multer• async• passport
참고 링크• http://todomvc.com/
• http://www.iamport.kr/
• https://www.staticgen.com/
• http://nodebeginner.org/index-kr.html
• http://jsbin.com/?js,console
• http://www.nodecloud.org/
• https://www.youtube.com/watch?v=sBzRwzY7G-k
• https://www.npmjs.com/browse/star