morgan
설명 : 요청과 응답에 대한 정보를 콘솔에 기록하는 미들웨어
사용 방법
const morgan = require('morgan');
//사용 가능한 인수 : dev, combined, common, short, tiny
app.use(morgan('dev'));
결과 예시
=> 'dev' : GET / 500 14.935 ms - 52
[HTTP 메서드] [주소] [HTTP 상태코드] [응답속도] - [응답 바이트]
=> 'combined' :
::1 - - [10/Jan/2021:06:17:13 +0000] "GET / HTTP/1.1" 500 52 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36
static
설명
- 정적인 파일을 제공하는 라우터의 역할을 수행하는 미들웨어
- 기본적으로 제공되므로 express 객체에서 꺼내서 장착하면 사용가능
- 서버의 폴더 경로와 요청 경로가 다르기 때문에, 외부에서 서버의 구조파악을 힘들게 하므로 보안에 용이
사용 방법
app.use('요청경로', express.static('실제 경로'));
//__dirname : 현재 파일경로를 의미
app.use('/', express.static(path.join(__dirname, 'public')));
body-parser
설명
- 요청의 본문에 있는 데이터를 해석하여 req.body 객체로 만들어주는 미들웨어
- form 데이터와 AJAX데이터는 처리가능하지만 이미지, 동영상, 파일 데이터는 처리불가(multer모듈 사용)
- JSON, URL-encoded 형식의 데이터의 경우 express-4.16.0버전부터는 내장되어 설치할 필요 없음
- Raw(버퍼), Text(텍스트 데이터) 형식의 데이터의 경우 body-parser를 직접 설치해야 사용가능
사용 방법
app.use(express.json());
//url-encoded 형식의 데이터 해석
app.use(express.urlencoded({extended: false}));
//raw, text 형식의 데이터 해석
//설치 : npm i body-parser
const bodyParser = require('body-parser');
app.use(bodyParser.raw());
app.use(bodyParser.text());