护照本地 - 无法读取未定义的属性“电子邮件”

时间:2014-11-10 21:42:45

标签: node.js express pug passport.js

我在我的应用中使用Passport。当我渲染视图以显示用户信息时,我能够在该视图中显示用户信息(我使用jade,btw):

#user
  p #{user.fname} #{user.lname)

但是,该视图扩展了布局,在该布局中,我无法访问用户变量。我的最终目标是在布局中使用导航栏并显示一些与用户相关的项目。我知道我可以在我的块中设置变量,但我不想在每个视图中设置它们(这似乎比它应该更重复,并且似乎是错误的做事方式)。如何将我的用户信息提供给我的视图我的视图扩展并在一个地方进行?

layout.jade

...

#user
  if(user != null)
    ul.nav.navbar-right.navbar-nav
      li.dropdown
        a.dropdown-toggle(href='#', data-toggle='dropdown') #{user.email} <--BREAKS HERE

...

user.jade

extends layout

...

#user
  h1.title Welcome #{user.email} <--WORKS FINE HERE

...

1 个答案:

答案 0 :(得分:1)

layout.jade

block header

    #user
      if(user != null)
          ul.nav.navbar-right.navbar-nav
              li.dropdown
                  a.dropdown-toggle(href='#', data-toggle='dropdown') #{user.email}

block content


要么

layout.jade

block header
    #user
      if(user != null)
          ul.nav.navbar-right.navbar-nav
              li.dropdown
                  a.dropdown-toggle(href='#', data-toggle='dropdown') 
                      | #{user.email}

block content



user.jade

extends layout

block content
    #user
        h1.title Welcome #{user.email}