바닐라 Node.js에서 편리함과 효율을 더 끌어올린 프레임워크로 직관적인 코드를 작성 할 수 있습니다.
미들웨어는 요청에 필요한 기능을 더하거나 에러 처리 등의 역학을 합니다. 미들웨어는 Express의 가장 큰 장점이라고 할 수 있습니다.
미들웨어가 사용되는 상황은 다음과 같습니다.
Express 버전이 14.6 이전인 경우에는 body-parser 미들웨어를 사용하여 다음과 같이 요청 바디를 구조화 할 수 있습니다.
const bodyParser = require('body-parser');
const jsonParser = bodyParser.json();
// 생략
app.post('/users', jsonParser, function (req, res) {
})
Express 버전이 14.6 이상인 경우에는 따로 body-parser을 설치 할 필요없이, Express 내장 미들웨어인 express.json() 을 사용합니다.
const jsonParser = express.json();
// 생략
app.post('/api/users', jsonParser, function (req, res) {
})
cors 미들웨어를 사용하여 cors 설정을 해줄 수 있습니다
const cors = require('cors');
// 생략
app.use(cors());
app.use() 를 사용하여 모든 요청에 대해 동일한 미들웨어를 적용 할 수있습니다.
const express = require('express');
const app = express();
const myLogger = function (req, res, next) {
console.log('LOGGED');
next();
};
app.use(myLogger);
app.get('/', function (req, res) {
res.send('Hello World!');
});
app.listen(3000);
app.use((req, res, next) => {
// 토큰이 있는지 확인, 없으면 받아줄 수 없음.
if(req.headers.token){
req.isLoggedIn = true;
next();
} else {
res.status(400).send('invalid user')
}
})