😵💫Express에서 사용하는 미들웨어 함수
미들웨어 함수는 요청 오브젝트(req), 응답 오브젝트 (res), 그리고 애플리케이션의 요청-응답 주기 중 그 다음의 미들웨어 함수 대한 액세스 권한을 갖는 함수. 그 다음의 미들웨어 함수는 일반적으로 next라는 이름의 변수로 표시됨
출처: https://expressjs.com/ko/guide/writing-middleware.html
-> next 함수를 호출하면 앱 내의 그 다음 미들웨어 함수가 호출됨. next() 함수는 미들웨어 함수에 전달되는 세번째 인수.
// step1.js
var express = require('express');
var router = express.Router();
router.get('/', function(req, res, next) {
console.log('step1');
next();
});
module.exports = router;
// step2.js
var express = require('express');
var router = express.Router();
router.get('/', function (req, res, next) {
console.log('step2');
res.send('respond with a resource');
});
module.exports = router;
//app.js
var step1 = require('./routes/step1');
var step2 = require('./routes/step2');
app.use('/users', step1, step2);
-> 실행결과 step1이 우선 실행. 그 다음에 step2가 실행.
-> next는 다음 router로 넘기는 역할.
-> step1에 도달하고 나면 step1 메세지를 출력하고 next()함수를 호출하여 스택 내의 그 다음 미들웨어 함수에 요청을 전달.