안녕세계

[SK고용디딤돌] Node.js (6/10) - 6주차 본문

[SK고용디딤돌] Node.js (6/10) - 6주차

Junhong Kim 2016. 8. 11. 14:50
728x90
반응형

npm init -> package.json 생성


helloexpress

├ bin

│  └ www 1) express 프레임 워크 객체 모듈을 로딩 2)웹서버룰 그축

├ app.js 1)서비스 파일(서비스 코드를 가지고 있다 2) express 프레임 워크를 로딩 3) third party 모듈 로딩 4) URI와 확장모듈 매핑

│          - 마운트 포인트하고 모듈을 매핑한다.

├ routes (controllers) 1) 모듈을 배치 2) controller 역할 3) 

       ├ index.js

       └ users.js

            - 마운프트 포인트에있는 패스하고 미들웨어를 매핑한다.


익스프레스 에서 사용하는 서비스 코드를 미들웨어라고 한다. 이것은 콜백이다.


(REST API 구조) URL <-> 함수


app.use 특정패스에서 이 미들웨어를 사용하겠다.

패스가 없으면 모든 경로(/) 임,

모듈을 가져다 쓸수 있지만 보이지 않는다.


에러처리를 위한 미들웨어(=함수)

app.use(function(err, req, res, next)

에러처리는 가장 밑에


모바일 서버 화면 제공 X

데이터만 제공- > 제이슨 포맷으로 데이터를 전송한다. res.send({ ... }) -> 객체만들면 자동으로 JSON의 Stringfy를 수행한다.


get 조회

put 수정

post 생성

delete 제거

all 모든 요청 처리, 정규표현식을 url을 매핑할 수 있음.


요청이 들어오면

get : 방식일 때는 사용자가 입력한 정보가 - request.query에서 parameter 이름으로 꺼내면 됨 (즉, 헤더)

post, put, delete - request.body 에서 꺼내서 사용


req.basUrl 마운트 포인트 정보가 담겨있음

req.path 마운트 포인트 빼고

req.originalUrl전부다




express => package.json 기술 => node_modules - A - B - C

* http로 server를 만든 것을, express가 모든 것을 해준다


< Express >

[sudo : 유닉스 계열] npm install express-generator -g


npm start   ----> node bin/www 한것과 동일

package.json에서


* bin/www

1) express 프레임워크 로딩 (app.js)

var app = require('../app');

※ express 프레임워크 => function(req, res) { ... } // request 이벤트가 발생하면 동작


2) express 프레임워크를 사용하는 서버를 생성하고 기동한다.

var server = http.createServer(app);

- 0 ~ 1023 까지는 super user(루트)권한이 있어야 쓸 수 있음.

1) http : 80 port

2) https : 443 port


express? 경량 웹 프레임워크 & 경량 웹 서버 & 경량 웹 서비스를 할 수 있도록 하는 것

철학 : minimalism


odel : 데이터를 저장, 읽고, 변경하는 것

iew : 입력받고, 결과를 보여주는 것

ontroller :  Model 과 View 사이에 존재하여 중재의 역할


-> 느슨한 결합을 하게된다 ( 교체가능한 시스템 ) -> 확장이가능 & 유지보수  편리

기본적으로 express framework는 MVC 패턴을 기반으로 하고 있다. 


express에서 routes는 controllers 이다.


view  모바일 서버는 화면을 제공하지 않음

app.use(bodyParser.urlencoded({ extended: false }));

extended가 false 일 경우 querystring을 사용

true일 경우에는 qs모듈을 (third party) 사용


/ mount 포인트는 index.js가 동작 됨


render 는 views 를 보내기 위해 사용

send 데이터만 보내기 위해 사용 -> 우리는 모바일 서버


[링크]

https://www.iconfinder.com

728x90
반응형
Comments