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에 담긴내용을 파싱해서 동적으로 페이지에 반영한다. |
'Node.js' 카테고리의 다른 글
Node.js 마이크로 서비스 코딩 공작소 DB세팅 (0) | 2019.10.04 |
---|---|
라우팅파일에 작성하는 mongoose와 sequelize 제공함수? (0) | 2019.10.03 |
Node.js 개발환경 (0) | 2019.10.01 |
promisify : 콜백함수를 promise를 지원하게 만들기 (0) | 2019.09.30 |
crypto모듈을 이용한 암호화 (0) | 2019.09.30 |
댓글