반응형
상단에 메뉴가 있고 로그인 / 비로그인에 따라 화면 뷰가 다르게 보이게 하고 싶다
비로그인일 경우 회원가입 혹은 로그인 사이트가 보이게끔 하는 사이트이고 로그인을 하면 그에 따른 다른 사이트가 보이게끔 하고싶다
우리가 지정한 router 마다 매번 경로에 따라서 지정해줘야하는데 굉장히 비효율적이라고 생각한다
그래서 템플릿에서만 사용하는 글로벌 변수를 템플릿에 셋팅해줄 수 있다
app.js에 코드 추가
app.use( (req, res, next) => {
app.locals.isLogin = true;
next();
})
isLogin만 변수만 있다면 어디서든 접근이 가능하게 되었다
layout 폴더에 base.html에 코드 추가
<div class="container" style="padding-top: 100px;">
{% if isLogin %}
로그인 중
{% else %}
로그인이 안되어있습니다
{% endif %}
{% block content %}{% endblock %}
</div>
app.js에서 false로 값을 바꾼다면
app.use((req, res, next) => {
app.locals.isLogin = false;
next();
});
"로그인이 안되어있습니다"라고 뜨게된다
'NODE.JS > Express' 카테고리의 다른 글
Express - 정적파일 (0) | 2022.06.16 |
---|---|
Express - from { body-parse } (0) | 2022.06.16 |
Express - 미들웨어 (0) | 2022.06.16 |
Express - 템플릿상속 (0) | 2022.06.15 |
Express - view engine (0) | 2022.06.13 |