본문 바로가기
Node.js

static 미들웨어함수

by fabxoe 2019. 10. 2.
const express = require('express');
const logger = require('morgan');
const cookieParser = require('cookie-parser')
const app = express();
const session = require('express-session')
const flash = require('connect-flash')

app.use(logger('dev'));
app.use(express.static(path.join(__dirname, 'public')));

app.use(express.json());
app.use(express.urlencoded({ extended: false }));

app.use(cookieParser('secret code'));

위 코드는 app.js 파일의 일부이다.

여기서 express내장 미들웨어함수들의 순서를 보자.

 

express.static미들웨어의 위치가 express.json과 express.urlencoded 미들웨어보다 위이다.

그 이유가 있다. 참고로 static 미들웨어만 독특하게도 일반적인 미들웨어와는 다르게 next()를 하지 않는다고 한다.

언제 next()를 하나하면, 지정한 폴더 안에 원하는 정적파일이 없을때만 next()를 한다고 한다.

즉 다음 라인에 위치한 미들웨어들을 실행시키지 않는다.

 

정적 파일을 찾았을 땐, 동적인 페이지를 만들필요가 없어졌으니 파싱도 할 필요가 없어졌다.
다음 라인의 미들웨어를 실행시킬 필요가 없는 것이다.

 

express 내장 미들웨어와 역할
express.static 설정한 폴더 내의 정적파일에 접근한다.

express.json와 express.urlencoded

express.json와 express.urlencoded

요청의 body에 담긴내용을 파싱해서 동적으로 페이지에 반영한다.

 

댓글