EtoC

middle(soft)ware 본문

BackEnd/NodeJs

middle(soft)ware

게리드 2023. 8. 4. 23:51

운영체제와 실행되는 애플리케이션 사이에 존재하는 소프트웨어이다.
기본적으로 분산된 애플리케이션의 통신 및 데이터 관리를 가능하게 한다.
데이터와 데이터베이스가 "파이프" 사이를 쉽게 통과할 수 있도록 두 가지 애플리케이션을 함께 연결하기 때문에 배관이라고도하며,

미들웨어를 사용하면 사용자가 웹 브라우저에서 양식을 제출하거나 웹 서버가 사용자의 프로필을 기반으로 동적 웹 페이지를 반환하도록 요청할 수 있다.

morgan?
HTTP request loogr middleware for node.js
morgan은 nodjs용 request logger middleware다.
morgan 함수를 호출하면 내가 설정한대로 middleware를 return해 준다.

설치방법

npm i morgan

morgan 함수를 호출한다.

import logger from "morgan";
app.use(logger("dev"))
       //또는 
import morgan from "morgan";
const logger = morgan("dev");
app.use(logger);

logger함수를 호출하면 dev, combined, common, short, tiny 5가지 옵션이 있다.

morgan을 사용하면 좋은점이 여러가지 정보를 한번에 보여준다는 점이다.

morgan("dev")

dev는 http method(GET)와 path("/"), status code(304), 응답에 걸린 시간(ms--)을 한번에 보여준다.

morgan("combined")

combined는 시간, method, http버전, 사용중인 브라우저와, os를 보여준다.

morgan("common")

morgan("short")

morgan("tiny")

dev랑 뭐가 다른가 했는데 색만 다르게 표시해주는거 같다.


미들웨어는 브라우저가 요청과 응답사이에서 작업을 다음함수에게 넘기는함수이지 응답하는 함수가 아니다.
모든 컨트롤러는 미들웨어이고 모든 미들웨어는 컨트롤러이다.

컨트롤러에는 (req,res) 두개의 argument만 있는것이아니라 하나가 더 존재하는데 바로 next이다.

const login =(req, res, next) =>{

}

next argument란?

다음함수를 호출하는 것을 말한다.