-
Middlewares for local variablesProject using node.js/Cloning Youtube 2020. 8. 22. 16:25
pug는 JS처럼 변수를 사용해서 html을 작성하는 템플릿 엔진이라고 했다. pug에게 서버가 변수를 전달하기 위해서 나는 middlewares.js 파일을 따로 만들고 next()로 변수를 router에게 넘겨줬다.
빨간색 밑줄은 신경 안 써도 된다. eslint가 파일에서 하나만 export할꺼면 export default로 하라고 하는 건데 상관 없다. 나중에 이 파일에는 내가 만든 여러 가지의 middleware들이 쌓이기 때문이다.
pug에게 변수를 넘겨주는 방법은 res.locals.변수이름 이다. pug에서 siteName='WeTube'가 되고 routes는 1번 줄에서 import한 routes가 된다.
app.js에서 localMiddleware를 import하고 app.use를 사용해서 사용했다. localMiddleware는 next()를 가지고 있기 때문에 res.locals.*들을 router들에게 넘겨줄 수가 있다.
main.pug에서 siteName이 보인다. 이 변수가 바로 localMiddleware로부터 받은 변수다.
참고 자료
소스 코드
https://github.com/zpskek/wetube-v3/commit/4075e6f6d0c74e7118b8f84d970d6190a94d24e8
'Project using node.js > Cloning Youtube' 카테고리의 다른 글
MVC pattern (0) 2020.08.23 export default VS export (0) 2020.08.22 pug (0) 2020.08.22 Node.js의 Router (0) 2020.08.21 다양한 middlewares (0) 2020.08.20