Javascript 循环的EJS和If语句未显示正确的值

Javascript 循环的EJS和If语句未显示正确的值,javascript,node.js,mongodb,ejs,Javascript,Node.js,Mongodb,Ejs,我正在构建一个应用程序,允许用户点击一个按钮,当他们返回页面时,会显示一条消息,上面写着“已经感兴趣”。当我显示页面时,它跳过for循环中的if语句并显示else语句。我做错了什么 下面是我的代码和当前输出 <% for(var i=0; i < userInterests.length; i++) { %> <% if ((username == userInterests[i].username) && (postID == userInter

我正在构建一个应用程序,允许用户点击一个按钮,当他们返回页面时,会显示一条消息,上面写着“已经感兴趣”。当我显示页面时,它跳过for循环中的if语句并显示else语句。我做错了什么

下面是我的代码和当前输出

<% for(var i=0; i < userInterests.length; i++) { %>
   <% if ((username == userInterests[i].username)  && (postID == userInterests[i].post_id)){ %> 
      <p>Already interested</p>
      <% break; %> 
   <% } else { %> 
      <form action="/jobs/interested/<%= post._id %>" method='POST'>
         <button type="submit" class="btn btn-info">I'm interested</button>
      </form>
      <% break; %> 
   <% } %> 
<% } %>

已感兴趣

我很感兴趣


逻辑问题,您正在测试username和postID,仅使用userinterest[0]的值。username和serinterest[0]。post\u id,因为您有break;声明在您的2个条件中,以下是问题的解决方案:

<% var userInterested = false %> 
<% for(var i=0; i < userInterests.length; i++) { %>
   <% if ((username == userInterests[i].username)  && (postID == userInterests[i].post_id)){ %> 
          <% userInterested = true; %>
          <% break; %> 
   <% } %>
<% } %>
<% if (userInterested) { %> 
   <p>Already interested</p>
<% } else { %> 
   <form action="/jobs/interested/<%= post._id %>" method='POST'>
      <button type="submit" class="btn btn-info">I'm interested</button>
   </form>
<% } %>

已感兴趣

我很感兴趣
它不喜欢EJS出现问题。否则,它就不会编译。尝试记录
if
语句中的所有值,并在循环中查看它们的值。这将让您清楚地了解为什么您的<代码>如果语句被评估为false。为了使逻辑在JS中更加坚固,请考虑使用<代码>==< /COD>而不是<代码>=< /代码>。我已经记录了它们的值,它们与数据库中的条目相匹配。我的代码的逻辑有问题吗?可以!非常感谢你!