Node.js 교과서 express 미들웨어

2020. 11. 27. 16:17· Programming/Node.js

Node.js 교과서 책을 읽고 학습 내용을 정리한 포스팅입니다.

문제 시 삭제하겠습니다.

 

미들웨어?

미들웨어는 express의 핵심인데 요청과 응답 중간에 위치하여 미들웨어라 합니다.

이 미들웨어를 사용하여 요청과 응답을 조작하고 기능을 추가하기도 하며,  나쁜 요청을 걸러낼 수 있습니다.

 

미들웨어 사용법

미들웨어는 app.use와 함께 사용합니다.

// 모든 요청에서 미들웨어 실행
app.use(미들웨어)

// abc로 시작하는 요청에서 미들웨어 실행
app.use('/abc', 미들웨어)

// abc로 시작하는 POST 요청에서 미들웨어 실행
app.post('/abc', 미들웨어)

next

미들웨어는 위에서 부터 아래로 실행되는데 next를 실행하여 다음 미들웨어로 넘어갑니다.

app.use((req, res, next) => {
   console.log('next를 사용하여 다음 미들웨어로 넘어갑니다.')
   next();
})

app.get(('/', req, res) => {
   ...
})

미들웨어에서 next를 실행하지 않으면 다음 미들웨어로 넘어가지 않습니다.

 

미들웨어 종류

static

static 미들웨어는 정적파일을 제공하는 라우터 역할을 합니다.

함수의 인수로 정적 파일들이 담겨 있는 폴더를 지정하면 됩니다.

app.use('요청 경로', express.static('실제 경로'));

 

body-parser

클라이언트의 요청 데이터를 해석해 req.body 객체로 만듭니다.

 

cookie-parser

클라이언트의 요청 데이터에 들어있는 쿠키를 해석에 req.cookies 객체로 만듭니다.

 

express-session

로그인 등의 이유로 세션을 구현하거나 특정 사용자를 위한 데이터를 임시적으로 저장해둡니다.

session은 req.session 객체안에서 유지됩니다.

app.use(session({
    secret: 'secret',
    resave: false, // 요청이 올 때 세션에 수정 사항이 생기지 않더라도 resave 할 것인가
    saveUninitialized: false, // 세션에 저장할 내용이 없더라도 처음부터 세션을 생성할 것 인가
    store: new MySQLStore({ 
        host     : 'localhost',    // 호스트 주소
        user     : 'root',           // mysql user
        password : '',       // mysql password
        database : ''
    })
    // store를 사용하여 서버 재시작 후에도 db에 세션이 유지됨.
}));

 

 

'Programming > Node.js' 카테고리의 다른 글

[Node.js] Express body-parser 너 뭐냐?  (0) 2021.10.13
[MongoDB] mongoose.connection.on() & once()  (0) 2021.10.13
[Express.js] middleware란??  (0) 2021.10.01
따라하며 배우는 노드, 리액트 시리즈 - 기본 강의 Node.js part2  (0) 2020.09.17
따라하며 배우는 노드, 리액트 시리즈 - 기본 강의 Node.js part1  (0) 2020.09.11
'Programming/Node.js' 카테고리의 다른 글
  • [MongoDB] mongoose.connection.on() & once()
  • [Express.js] middleware란??
  • 따라하며 배우는 노드, 리액트 시리즈 - 기본 강의 Node.js part2
  • 따라하며 배우는 노드, 리액트 시리즈 - 기본 강의 Node.js part1
한우콩
한우콩
분할정복
한우콩
Divide and Conquer
한우콩
전체
오늘
어제
  • 분류 전체보기 (88)
    • Programming (42)
      • React (15)
      • JavaScript (8)
      • 트러블슈팅 (1)
      • Node.js (6)
      • Python (7)
      • C (5)
    • 면접준비 (11)
    • 네트워크 (0)
    • 프리온보딩 (8)
    • TIL (9)
    • 회고 (13)
    • 메가테라 (1)
    • 예제 (2)
      • C (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • z.com
  • EnvironmentPlugin
  • grid column
  • 메가테라 프론트엔드 생존코스
  • 14버전
  • Next
  • 전체 너비
  • 그리드 아이템
  • V14
  • webpack cli
  • 13버전
  • 유데미 #udemy #웅진씽크빅 #스나이퍼팩토리 #인사이드아웃 #미래내일일경험 #프로젝트캠프 #부트캠프 #next.js #프론트엔드개발자양성과정 #개발자교육과정
  • 제로초
  • Next.js
  • react
  • v13
  • zerocho
  • 항해99 취업 리부트 코스 후기#항해99#리부트#취업 리부트#리부트 후기#취업 리부트 후기
  • z-com
  • 개발자포트폴리오 #개발자이력서 #개발자취업 #개발자취준 #코딩테스트

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
한우콩
Node.js 교과서 express 미들웨어
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.