작성
·
399
0
잘 이해가 안가서 질문 드립니다.
app.use('/', (req, res, next) => {
// 미들웨어 안에다 둔다.
if (req.session.id) // 세션 아이디가 있다면 (로그인 상태라면)
express.static(path.join(__dirname, 'public'))(req, res, next); // public에서 에셋을 보여준다
else
next();
}
express.static(path.join(__dirname, 'public'))(req, res, next)
가 어떤식으로 실행되는건지 감히 안잡히네요.
답변 1
2
app.use 안에서 넣는 함수는 익스프레스가 알아서 (req, res, next)를 붙여 호출합니다.
그런데 저희가 미들웨어 안에 두는 express.static은 누가 따로 (req, res, next)를 붙이는 게 없으므로 직접 (req, res, next)를 붙여 호출하는 겁니다.
참고로 (req, res, next) => { ... }는 app.use 안에 넣었으므로 익스프레스가 (req, res, next)를 붙여 호출합니다.
그렇죠. 어쩌면 당연한 현상을 물었네요.
당연히 콜백함수에 함수인자를 전달하니까 함수내에서 인자를 받아 사용할수있는 거죠.
처음보는 형태에 잠시 뇌정지가 왔나 봅니다.