express 에서 사용할 수 있는 middleware의 유형은 아래와 같습니다.
app.use(), app.METHOD()로 이루어진 요청
// Application-level middleware // 해당 PATH로 마운트 되는 미들웨어 app.use('/user/:id', function (req, res, next) { console.log('Request Type:', req.method); next(); }); // HANDLER 함수 app.get('/user/:id', function (req, res, next) { res.send('USER'); }); // Router-level middleware router.get('/user/:id', function (req, res, next) { // if the user ID is 0, skip to the next router if (req.params.id == 0) next('route'); // otherwise pass control to the next middleware function in this stack else next(); // }, function (req, res, next) { // render a regular page res.render('regular'); });
이전 middleware정리 문서랑 동일함.
app.use(function(err, req, res, next) { console.error(err.stack); res.status(500).send('Something broke!'); });
Error-handling middleware는 반드시 4개의 인수를 가짐.
-> (err, req, res, next)
-> 코드 가장 하단부에 위치
// Built-in middleware
// express에서 기본적으로 제공하는 middleware
app.use(express.static('public'));
app.use(express.static('uploads'));
app.use(express.static('files'));
// 다른사람이 만들어 놓은 middleware
// npm install을 이용해 설치해야 사용 가능
const express = require('express');
const app = express();
const cookieParser = require('cookie-parser');
// load the cookie-parsing middleware
app.use(cookieParser());
middleware는 실행순서가 가장 중요함. 원하는 결과를 얻기 위해서 실행순서를 잘 생각하면서 코드를 짜야할듯.