Express는 client의 요청을 받아 처리할 때 미들웨어라는 개념을 사용한다. Express 애프리케이션은 기본적으로 일련의 미들웨어 함수 호출이다.
미들웨어란 ?
미들웨어 함수는 req(요청) 객체, res(응답) 객체, 그리고 어플리케이션 요청-응답 사이클 도중 그 다음의 미들웨어 함수에 대한 엑세스 권한을 갖는 함수이다.
미들웨어란 간단하게 말하면 클라이언트에게 요청이 오고 그 요청을 보내기 위해 응답하려는 중간(미들)에 목적에 맞게 처리를 하는, 말하자면 거쳐가는 함수들이라고 보면 되겠다.
예를 들어서 요청-응답 도중에 시간을 콘솔 창에 남기고 싶으면 미들웨어 함수를 중간에 넣어서 표시를 한 뒤에 계속해서 다음 미들웨어들을 처리할 수 있도록 하는 것이다.
다음 미들웨어 함수에 대한 엑세스는 next 함수를 이용해서 다음 미들웨어로 현재 요청을 넘길 수 있다.
next라는 말에서 알 수 있듯이 next를 통해 미들웨어는 순차적으로 처리된다.
애플리케이션 레벨 미들웨어
app.use에서 선언된 function이 미들웨어이다.
const express = require('express');
const app = express();
app.listen(3000);
app.use(function(req, res){
res.send('Express Server!!!');
});
한 개의 요청을 여러개의 미들웨어가 처리할 수 있다. next 인자를 처리하면 하위 스택을 처리하게 된다.
라우트를 사용하는 방법, client 요청을 http method 별로 처리 가능하다.
get 이면 get, post 면 post
next를 사용해서 미들웨어를 여러개 실행할 수 있다. 하나의 경로에 여러개의 라우트를 정의하는 것도 가능하다.
그러나 동일한 메소드를 2개이상 만들고 앞에서 response를 처리하면 다음 메소드는 실행되지 않는다.
PS : nodemon
nodemon을 설치하면 서버를 껏다 켜지 않아도 저장한 것이 적용이 되어 편리하다
npm install -g nodemon@2.0.9
터미널에서 이 명령어로 설치하면 된다.
그 후 nodemon index로 실행한다.
'Node.js' 카테고리의 다른 글
[Node.js] Express 라우터를 모듈로 분리하기 (0) | 2024.03.18 |
---|---|
[Node.js] Express 여러 미들웨어 사용 (1) | 2024.03.14 |
[Node.js] Http 서버 만들기 (2) : Response 사용하기 (0) | 2024.03.13 |
[Node.js] Http 서버 만들기 (1) : 웹 서버 만들기 (0) | 2024.03.13 |
[Node.js] Postman을 이용하여 서버 테스트하기 (0) | 2024.03.13 |