Node.js
static 미들웨어함수
fabxoe
2019. 10. 2. 12:08
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에 담긴내용을 파싱해서 동적으로 페이지에 반영한다. |