노드 공부 기록(7) - Node.js 자주 사용하는 미들웨어
my code archive
article thumbnail
반응형

🔍미들웨어란

미들웨어는 익스프레스의 핵심이다.

  • 요청과 응답의 중간(미들 middle)에 위치하여 미들웨어라 부른다.
  • 미들웨어는 요청과 응답을 조작하여 기능을 추가하기도 하고 나쁜 요청을 걸러내기도 한다.
app.use(미들웨어) 모든 요청에서 미들웨어 실행
app.use('/abc', 미들웨어) abc로 시작하는 요청에서 미들웨어 실행
app.post('/abc',미들웨어) abc로 시작하는 POST 요청에서 미들웨어 실행

🔍morgan, cookie-parser, express-session, dotenv 설치

dotenv를 제외한 다른 패키지는 미들웨어임. dotenv는 process.env를 관리하기 위해 설치.

<morgan>

app.use(morgan('dev'));
  • 인수로는 dev 이외에도 combined, common, short 등을 넣을 수 있다. 인수를 바꾸면 로그가 달라진다.
  • 요청과 응답에 대한 정보를 콘솔에 기록함.
  • 요청과 응답을 한 눈에 볼 수 있어 편리하다.

<static>

app.use('요청 경로', express.static('실제 경로));
app.use('/', express.static(path.join(__dirname, 'public')));
  • 함수의 인수로 정적 파일들이 담겨있는 폴더를 지정.
  • 정적인 파일들을 제공하는 라우터 역할 수행.
  • 기본적으로 제공되기 때문에 따로 설치할 필요 없이 express 객체 안에서 꺼내 장착하면 됨.

<body-parser>

app.use(exprss.json());
app.use(express.urlencoded({extended: false}));
  • 요청의 본문에 있는 데이터를 해석해서 req.body 객체로 만들어주는 역할 수행.
  • 보통 폼 데이터 or AJAX 요청의 데이터를 처리함.

<cookie-parser>

app.use(cookieParser(비밀키));
  • 요청에 동봉된 쿠키를 해석해 req.cookies 객체로 만드는 역할 수행.

<express-session>

app.use(session({
	resave: false,
	saveUninitialized: false,
	secret: process.env.COOKIE_SECRET,
	cookie: {
		httpOnly: true,
		secure: false,
	},
	name: 'session-cooke',
}));
  • 세션 관리용 미들웨어
  • 로그인 등의 이유로 세션을 구현하거나 특정 사용자를 위한 데이터를 임시적으로 저장해둘 때 유용함.
  • 세션은 사용자별로 req.session 객체 안에 유지됨.
반응형
profile

my code archive

@얼레벌레 개발자👩‍💻

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

반응형