![알고 넘어가자 : middleware](https://cdn.inflearn.com/public/files/blogs/3e72a830-c51e-4d98-ac7d-57e4de4ae31c/5.jpg)
알고 넘어가자 : middleware
* middleware 란? by Express
최소한의 기능을 갖춘 미들웨어.
라우팅 웹 프레임워크이다.
# 미들웨어 오브젝트 및 함수 : (req, res, next)
1_req : 요청 오브젝트
2_res : 응답 오브젝트
3_next() : 다음 미들웨어 함수에 대한 엑세스 권한을 갖는 함수
# next() 호출 :
1_모든코드실행.
2_요청/응답 오브젝트 변경.
3_요청/응답 주기 종료. (종료하지 않는 경우 반드시 next()를 전달해야 한다.)
4_그 다음 미들웨어 함수를 호출.
# 미들웨어 유형 : expressjs.com
1_애플리케이션 레벨 미들웨어 :
app.use() 및 app.METHOD() 함수를 이용해 미들웨어를 앱 오브젝트의 인스턴스에 바인드.
이때의 METHOD는 미들웨어 함수가 처리하는 요청 (GET, PUT, POST 등)
2_라우터 레벨 미들웨어 :
router.use() 및 router.METHOD 함수를 이용해 미들웨어를 로드.
3_오류 처리 미들웨어 :
오류처리 함수는 인자 4개를(err, req, res, next) 받는다.
4_기본 제공 미들웨어 :
express.static은 Express의 유일한 기본 제공 미들웨어 함수.
express.static(root, [options])
5_써드파티 미들웨어 :
Express 앱에 기능 추가하기.
(필참) https://expressjs.com/ko/resources/middleware.html
# app
app.get('/', (req, res, next) => {...}) : get요청에 대한 라우트
app.post('/', (req, res, next) => {...}) : post요청에 대한 라우트
res.status(200) : 성공
res.status(400) : 잘못된 요청으로 인한 실패
res.status(403) : 서버에 클라이언트 요청이 전달됐는데 서버가 접근을 거부함
res.status(404) : 클라이언트가 서버와 통신할 수 있지만 서버가 요청한 내용을 찾을 수 없음