EJS, если условие никогда не выполнялось - PullRequest
0 голосов
/ 25 февраля 2019

В моем файле ejs есть условие if, которое проверяет состояние входа пользователя в систему.

Если пользователь вошел в систему, отобразите welcome + "displayName" и кнопку выхода из системы

Если пользователь ifне вошли в систему, отобразите кнопку входа в систему.

<% 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>
      <% } %>

Дело в том, что я могу войти в систему, но кнопка приветствия и выхода из системы никогда не отображается, она по-прежнему остается "логином".Я должен вручную ввести / выйти в строке URL для выхода.

Я поместил свое displayName в журнал консоли, который ясно показал его после входа в систему: enter image description here

Как видите, он записал мое displayName, которое представляет собой строку.

Может кто-нибудь уточнить, почему условие if не работает?

1 Ответ

0 голосов
/ 26 февраля 2019

Хорошо, поэтому я забыл передать свойство displayName в моих рендерах

После того, как я добавил: displayName: req.user ? req.user.displayName : "", теперь все работает нормально.

...