가자미의 개발이야기

[Node.js] 미들웨어 본문

HTML & CSS & JS/Node.js

[Node.js] 미들웨어

가자미 2021. 5. 11. 16:50

1. 미들웨어

#익스프레스는 미들웨어로 구성됨

 

요청과 응답의 중간에 위치하기 때문에 미들웨어라고 함

위에서 아래로 순서대로 실행됨.

미들웨어는 req, res, next가 매개변수인 함수

req = 요청, res = 응답, next = 다음 미들웨어로 넘어감

 

미들웨어가 실행되는 경우

app.use(미들웨어) 모든 요청에서 미들웨어 실행
app.use('/abc', 미들웨어) abc로 시작하는 요청에서 미들웨어 실행
app.post('/abc', 미들웨어) abc로 시작하는 post 요청에서 미들웨어 실행

2. 에러처리 미들웨어

#에러가 발생하면 에러 처리 미들웨어로

매개변수가 err, req, res, next 총 4개

err에 에러에 관한 정보

res.status 메서드로 http 상태 코드 지정 가능

익스프레스가 에러를 알아서 처리함

특별한 경우가 아니면 가장 아래로.

const express = require('express');

const app= express();
app.set('port', process.env.PORT || 3000);

//미들웨어
app.get('/', (req, res, next)=>{
	console.log('GET / 요청에서만 실행.');
    res.send('hello express');
    next();
}, (req, res) => {
	throw new Error('에러는 에러 처리 미들웨어로 갑니다.')
});
//에러처리 미들웨어
app.use((err,req,res,next)=> {
	console.error(err);
    res.status(500).send(err.message);
});

app.listen(app.get('port'),()=>{
	console.log(app.get('port'), '번 포트에서 대기 중');
});