express

김세주·2021년 3월 25일
0

express

목록 보기
1/1

express framework npm 통해 다운로드, express 가 http 모듈로 작성햇던 것과 가장 큰 차이점은

  1. 미들웨어를 붙이기 쉽다
  2. 자체 라우터를 제공한다

기본라우팅
라우팅
익스프레스 공식문서

기본적인 루트 :
mkdir myapp -> cd myapp -> npm init -> npm install express --save (디팬던시 추가)

기본 라우팅

미들웨어

컨베이어 벨트 위에 올라가있는 request에 무언가 악세사리를 붙이거나, 불량품이라면 밖으로 걷어내는 역할을 한다. 미들웨어는 express의 큰 장점 중 하나다. express 애플리케이션은 기본적으로 일련의 미들웨어 함수 호출이다.

미들웨어가 주로 쓰이는 상황

1.모든 요청에 대해 url이나 메소드를 알고자 할 때
2.POST 요청 등에 쓰이는 body(payload)를 쉽게 얻어내고자 할 때
3.모든 요청/응답에 CORS 헤더를 붙일 때
4.요청 헤더에 사용자 인증 정보가 담겨있는지 확인하고 싶을 때

미들웨어 작동원리

express chatterbox refactoring

const express = require('express');
const cors = require('cors');
const bodyParser = require('body-parser')
const routes = require('./routes.js');
const app = express();

app.use(cors());
app.use(bodyParser.json());

app.use(function(req, res, next) {
  console.log(`${req.method}\t ${req.url}`)
  next()
})

app.use('/', routes);
const server = app.listen(3000, () => {
  /* eslint no-console: 0 */
  console.log('chatterbox-serer listen on 3000');
});

module.exports = server;

미들웨어 middleware

express 에서는 모든게 미들웨어라고 할 수 있다.
어플리케이션을 구현할때 굉장히 큰 도움이 됨

body-parser

ex)
$ npm install body-parser --save

body : 웹 브라우저 쪽에서 요청한 정보의 본체
header : 그 정보를 설명하는 것
그 본체인 데이터를 parser(분석) 해서 우리가 필요한 형태로 가공
=> body-parser

사용법 : app.use(bodyparser.urlencoded({ extended: false }))

compression

ex)
$ npm install compression --save

압축을 시켜준다.

나만의 미들웨어 만들기

app.use(function (req, res, next) {
  fs.readdir("./data", function (error, filelist) {
    req.list = filelist;
    next(); /* 이 변수에 그 다음에 호출 되어야 할 미들웨어가 담겨있음 */
  });
});

정적인 파일 서빙 (static)

ex)사진 올리기등 (기본내장)
app.use(express.static('public')) public 디렉토리 안에서 스태틱 파일을 찾겠다. url 을 통해서 접근할 수 있다.

에러처리

app.use((req, res, next) => {
  res.status(404).send("Sorry cant find that!");
});

라우터

라우트가 굉장히 많아질 수 있다 (100개 200개 1000개)
-> 파일별로 정리 하고 싶을 때 사용

express.Router (라우터를 만들어줌)

익스프레스 라우터 사용

익스프레스 제너레이터

편하게 익스프레스 세팅을 도와준다.

익스프레스 제너레이터 영상

profile
시간은 내 편이다.

0개의 댓글