Node.js 교과서 책을 읽고 학습 내용을 정리한 포스팅입니다.
문제 시 삭제하겠습니다.
미들웨어?
미들웨어는 express의 핵심인데 요청과 응답 중간에 위치하여 미들웨어라 합니다.
이 미들웨어를 사용하여 요청과 응답을 조작하고 기능을 추가하기도 하며, 나쁜 요청을 걸러낼 수 있습니다.
미들웨어 사용법
미들웨어는 app.use와 함께 사용합니다.
// 모든 요청에서 미들웨어 실행
app.use(미들웨어)
// abc로 시작하는 요청에서 미들웨어 실행
app.use('/abc', 미들웨어)
// abc로 시작하는 POST 요청에서 미들웨어 실행
app.post('/abc', 미들웨어)
next
미들웨어는 위에서 부터 아래로 실행되는데 next를 실행하여 다음 미들웨어로 넘어갑니다.
app.use((req, res, next) => {
console.log('next를 사용하여 다음 미들웨어로 넘어갑니다.')
next();
})
app.get(('/', req, res) => {
...
})
미들웨어에서 next를 실행하지 않으면 다음 미들웨어로 넘어가지 않습니다.
미들웨어 종류
static
static 미들웨어는 정적파일을 제공하는 라우터 역할을 합니다.
함수의 인수로 정적 파일들이 담겨 있는 폴더를 지정하면 됩니다.
app.use('요청 경로', express.static('실제 경로'));
body-parser
클라이언트의 요청 데이터를 해석해 req.body 객체로 만듭니다.
cookie-parser
클라이언트의 요청 데이터에 들어있는 쿠키를 해석에 req.cookies 객체로 만듭니다.
express-session
로그인 등의 이유로 세션을 구현하거나 특정 사용자를 위한 데이터를 임시적으로 저장해둡니다.
session은 req.session 객체안에서 유지됩니다.
app.use(session({
secret: 'secret',
resave: false, // 요청이 올 때 세션에 수정 사항이 생기지 않더라도 resave 할 것인가
saveUninitialized: false, // 세션에 저장할 내용이 없더라도 처음부터 세션을 생성할 것 인가
store: new MySQLStore({
host : 'localhost', // 호스트 주소
user : 'root', // mysql user
password : '', // mysql password
database : ''
})
// store를 사용하여 서버 재시작 후에도 db에 세션이 유지됨.
}));
'Programming > Node.js' 카테고리의 다른 글
[Node.js] Express body-parser 너 뭐냐? (0) | 2021.10.13 |
---|---|
[MongoDB] mongoose.connection.on() & once() (0) | 2021.10.13 |
[Express.js] middleware란?? (0) | 2021.10.01 |
따라하며 배우는 노드, 리액트 시리즈 - 기본 강의 Node.js part2 (0) | 2020.09.17 |
따라하며 배우는 노드, 리액트 시리즈 - 기본 강의 Node.js part1 (0) | 2020.09.11 |