728x90
반응형
미들웨어는 양 쪽을 연결하여 데이터를 주고 받을 수 있도록 중간에서 매개 역할을 하는 소프트웨어, 네트워크를 통해서 연결된 여러 개의 컴퓨터에 있는 많은 프로세스들에게 어떤 서비스를 사용할 수 있도록 연결해 주는 소프트웨어를 말한다.
express홈페이지에 가보면 미들웨어란 미들웨어함수는 요청 오브젝트(req), 응답 오브젝트 (res), 그리고 애플리케이션의 요청-응답 주기 중 그 다음의 미들웨어 함수 대한 액세스 권한을 갖는 함수라고 서술되어 있다. 그 다음의 미들웨어 함수는 일반적으로 next라는 이름의 변수로 표시한다고 한다.
- app.use() 를 통해서 미들웨어를 정의할 수 있다.
- 미들웨어는 본인의 함수가 끝나면 next()를 통해서 다음 함수를 호출해야 한다.
미들웨어의 특징
- 각 미들웨어에 정의된 코드를 실행한다.
- 다음 미들웨어를 순차적으로 실행한다.
- res.send() 등의 메서드를 이용하여 클라이언트와 서버간 Request-Response 주기를 종료한다.
- 이전 미들웨어에서 정의한 프로퍼티를 다음 미들웨어로 넘겨줄 수 있다.
미들웨어 순서
var express = require('express');
var app = express();
var myLogger = function (req, res, next) {
console.log('LOGGED');
next();
};
app.use(myLogger);
app.get('/', function (req, res) {
res.send('Hello World!');
});
app.listen(3000);
반응형
위와 같이 미들웨어 함수가 있을 때
- 루트 경로를 라우팅하기 전에 myLogger미들웨어 함수를 로드한다.
- “LOGGED”라는 메시지를 터미널에 출력된다.
- next()함수를 호출하여 스택 내의 다음 미들웨어 함수에 요청을 전달한다.
- “Hello World!”를 터미널에 출력된다.
next()함수
: next()함수는 미들웨어 함수에 전달되는 세번째 인수이다. 이 함수는 일반적으로 next라는 이름을 가지고 혼란을 방지하기 위하여 next라는 이름으로 사용한다.
아래 사이트를 참고하여 글을 작성하였습니다.
https://expressjs.com/ko/guide/writing-middleware.html
https://velog.io/@limsw/node.js-미들웨어MiddleWare란-무엇일까
728x90
반응형