Express.MIDDELWARE에 대한 짧은 이야기.

산기슭곰발자·2023년 12월 1일

대충 '미들웨어'라는 개념의 위치를 정해보았다.
너무 어려운 말들은 기재를 할 수 가 없으니 간단한 말로 설명하자면

서버에서 발생하는 request에서 어떠한 router를 통과하여 response 까지의 일련의 과정 '앞' 혹은 '후' 에 사용하는 '관문?' 같은 역할.

이라고 생각을 하면은 조금더 말이 쉽게 풀릴 것 같다.

어떠한 라우터를 구현하였을때 반복적이게 발생하는 어떠한 함수를 일일히 하드코딩 하는 것 보다는 app.use(middleware) 를 사용하여 어떠한 요청과 결과가 나오기 전 혹은 후에 미들웨어 함수를 실행시켜 주는 것이다.

출처(https://expressjs.com/ko/guide/writing-middleware.html)

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 함수를 확인해보면 req, res, next라는 부분이 눈에 띌 것이다.
1. request 요청발생
2. res 결과값 도출
3. next() 다음 함수 실행

순으로 처리가 될 것이다. 어떠한 router가 실행되기 전에 실행될 수 있을 것이며, 코드 아래쪽에 app.user(myLogger)를 작동시키면 어떠한 router가 실행 된 이후 middleware가 작동하게 될 것이다.

인증 혹은 인가를 위한 미들웨어를 작성한다면 어떠한 회원정보나 캐시, 정보들이 필요한 router 실행 전에 미들웨어를 실행 시킬 것이며, 어떠한 오류 이후에 공통적으로 발생하는 함수가 있다고 하면 router 이후 관련된 미들웨어를 삽입 시켜주는 것이다.

아직까지 미들웨어를 활용한 다양한 코드작성의 표본이 적어 자유 자재로 미들웨어 활용은 어려우나 자주 적어봐야 익숙해질 것 같다.

profile
곰처럼 개발해보자.

0개의 댓글