如何通过EJS

时间:2019-01-12 20:08:29

标签: node.js ejs

我试图让Each枚举对象的属性并显示唯一的结果。例如,我试图遍历服务器中的所有消息,仅显示当前用户是发件人的消息 。在执行此操作时,我想拉起所有接收者,为每个接收者创建一个组,并显示与该接收者交互的每条消息。但是,我只能显示所有消息,但是如果接收方出现两次,它将使用同一接收方而不是一个创建两个单独的组。

我试图枚举所有属性,但出现一条错误消息,提示您不能在对象的属性上应用for Each。

<% message.forEach(function(message){%>
 <% message.sender.id.forEach(function(message){ %>
    <% if(currentUser._id.equals(message.sender.id)) {%>
    <div>
      <p>Message sent to <%= message.receiver.username %></p>
        <ul>
          <li><%= message.text %></li>
        </ul>
        </div>
    <% }); %>
    <%}%>
<%});%>

我希望每个接收者都有一个div及其对应关系,我会得到多个组(在同一接收者处找到的每条消息一个组

1 个答案:

答案 0 :(得分:0)

我认为您放错了括号。请尝试下面的代码。

建议的代码

   <% message.forEach(function(message){%>
     <% message.sender.id.forEach(function(message){ %>
       <% if(currentUser._id.equals(message.sender.id)) {%>
         <div>
           <p>Message sent to <%= message.receiver.username %></p>
             <ul>
               <li><%= message.text %></li>
             </ul>
        </div>
      <%};%> //I moved a bracket from this line to the next line
    <%})%>
 <%});%>