在我的ejs文件中,有一个if条件检查用户登录状态。
如果用户已登录,则显示Welcome +“ displayName”,然后退出按钮
如果用户未登录,则显示登录按钮。
<% if(typeof displayName == 'string' && displayName) { %>
<li class="navbar-text">
<i class="fa fa-user" aria-hidden="true"></i>
Welcome,
<%= displayName %>
</li>
<li class="nav-item">
<a href="/logout" class="nav-link">
<i class="fa fa-sign-out" aria-hidden="true"></i> Logout</a
>
</li>
<% } else { %>
<li class="nav-item">
<a href="/login" class="nav-link">
<i class="fa fa-sign-in" aria-hidden="true"></i></i>
Login</a>
</li>
<% } %>
问题是,我能够登录,但是从未显示欢迎和注销按钮,它仍然保留为“登录”。我必须在网址栏中手动输入/ logout才能注销。
我将displayName放在控制台日志中,该日志在登录后清楚地显示出来:
如您所见,它记录了我的displayName,它是一个字符串。
任何人都可以详细说明if条件为何不起作用吗?
答案 0 :(得分:0)
好,所以我忘记在渲染器中传递displayName
属性
我添加了displayName: req.user ? req.user.displayName : ""
之后,现在一切正常。