2017-11-16 6 views
0

나는 node.js에서 일하고있다. jade를 내 템플릿 엔진으로 사용. 나는 정적 인 navbar를 보여주고있다. 나는 그것을 레이아웃으로 유지했다. 제이드. 로그인 폼이있어서 navbar에 사용자 이름을 표시해야합니다. 세션을 사용하여 사용자 이름을 저장하고 사용합니다. req.app.locals.env = req.session.username;.
이제 사용자 이름은 전역이며 레이아웃에서 사용할 수 있습니다. 그 일. 하지만 문제는 다른 브라우저에서 두 명의 사용자를 열면 최근에 로그인 한 사용자 이름 만 탐색기의 나머지 모든 사용자에게 표시됩니다. 아무도 나를 도울 수 있습니까?Node.js - 라우트의 js 파일에서부터 layout.jade로 바운더리를 보내는 방법

여기 내 출력의 스크린 샷입니다. 내 출력

a user logged in chrome(suresh)

another user logged in firefox(user)

Navbar를

내가 다른 브라우저에서 두 명의 사용자를 열린 모든 views.I으로 확장 layout.jade입니다. 문제는 내가보기, 삽입, 홈 r에 navbar의 모든 버튼, 이름 "suresh"는 navbar.Since에서 "사용자"로 변경되어 gobal로 이름을 표시하고 레이아웃에서 이름을 없애기 위해 세션 값을 저장할 때입니다. .옥. 레이아웃에 사용자 이름을 표시하는 다른 방법이 있습니까?

답변

0

사용자 이름을 세션에 저장하고 최근 로그인 후에 세션이 업데이트되기 때문입니다. 이것을 수행하는 가장 좋은 방법은 usersInfo를 라우트 할 때 라우트로 보내는 것입니다.

res.render('/home', { userInfo: userInfo }); 
+0

우리는 레이아웃을 렌더링 할 수 있습니까? 제이드? 모든 옥 (jade) 템플릿에 대해 정적으로 표시됩니다. – naresh

+0

렌더링 할 수는 있지만 모든 페이지의 기본 레이아웃으로 유지하고 다른 모든보기 (예 : 집, 약, 연락처)에서 확장 할 필요는 없습니다. Jade 's (layout.pug 확장) 기능. –

+0

내 질문을 편집하고 출력을 추가했습니다. – naresh