我很困惑 if else 在 ejs 中的工作方式是否不同

I am confused does the if else works differently in ejs

我想知道这段代码有什么问题。我正在尝试实现一个登录代码,在这里我想要如果条件为真则只显示注销显示登录或注册

<% if(!currentUser) {%>
    <li><a href="/login">Login</a></li>
    <li><a href="/register">Register</a></li>
    <% } %>
    <% else { %>
    <li><a href="#">Signed In As : <%= currentUser.username %> </a></li>
    <li><a href="/logout">Logout</a></li>
<%}%>

这是错误的代码,我发现如果我在一行中而不是代码 运行s,而不是给 else 换行,但 js 不是这种情况,我只想知道这是什么意思如果我 运行 这段代码就可以工作

<% if(!currentUser) {%>
    <li><a href="/login">Login</a></li>
    <li><a href="/register">Register</a></li>
    <% } else { %>
    <li><a href="#">Signed In As : <%= currentUser.username %> </a></li>
    <li><a href="/logout">Logout</a></li>
<%}%>
<% } %>
<% else { %>

非常粗略地相当于:

}
document.write("\n    ");
else {

但是 else 需要紧跟在 if (condition) 之后。你不能有在它之前写代码的东西。