인프런 커뮤니티 질문&답변

Inpa Skyrim님의 프로필 이미지
Inpa Skyrim

작성한 질문수

[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지

express-session 미들웨어

미들웨어 확장법 자세하게좀 설명 해주세요..

작성

·

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)를 붙여 호출합니다.

Inpa Skyrim님의 프로필 이미지
Inpa Skyrim
질문자

그렇죠. 어쩌면 당연한 현상을 물었네요.

당연히 콜백함수에 함수인자를 전달하니까 함수내에서 인자를 받아 사용할수있는 거죠.

처음보는 형태에 잠시 뇌정지가 왔나 봅니다.

Inpa Skyrim님의 프로필 이미지
Inpa Skyrim

작성한 질문수

질문하기