无法在节点路由中传递对象并呈现页面?

时间:2019-01-31 20:32:04

标签: javascript html node.js express ejs

我正在使用def method_missing(method_name, *args) nil end 开发一个node.js项目。我运行路线并渲染ejs页面,并通过它传递express.js对象。当我执行team时,它会显示团队详细信息,但会为console.log(team)提供undefined值,尽管它存在。我该如何解决。我还将附加<%= team.member.name %>和我的ejs代码的屏幕截图。请帮助This is the embedded screenshot

我的ejs文件是:

console.log(team)
而我的路线代码是:

<% include ./partials/header%>
<% console.log("yup"+team)%>
          <table class="table-striped table table-bordered">
            <tr class="thead-dark">
              <th>Name</th>
              <th>Year</th>
              <th>Skills</th>
              <th>Leader</th>
            </tr>
                <% for(i = 0; i < team.members.length; i++){
                var member = team.members[i];%>
                <tr>
                  <td><%= member.name %></td>
                  <td><%= member.year %></td>
                  <td>
                    <ul>
                        <% for(var i = 0; i < member.skills.length; i++){ %>
                          <li>
                            <%= member.skills[i];%>
                          </li>
                          <% } %>
                    </ul> 
                  </td>
                  <td><% if(member.isLeader) { %>
                  	Yes
                  	<% } else { %>
                  	No
                  	<% } %>
                  </td>
                  </tr>
                  <% } %>
          </table>   
<% include ./partials/footer%>

2 个答案:

答案 0 :(得分:0)

我想您的for循环中有问题。您尝试过forEach循环吗?
尝试使用此:

    <% team.members.forEach(member => { %>
           <tr>
              <td><%= member.name %></td>
              <td><%= member.year %></td>
              <td>
                 <ul>
                    <% member.skills.forEach(skill => { %>
                       <li>
                          <%= skill%>
                       </li>
                     <% }); %>
                  </ul> 
               </td>
               <td><% if(member.isLeader) { %>
                  Yes
                   <% } else { %>
                  No
                   <% } %>
               </td>
          </tr>
    <% }); %>

答案 1 :(得分:0)

<% if (typeof team === "undefined" ) { %> 
// do smth
<%} else {%>
// do smth
<%}%>

根据某些条件,您将team设为undefined,这意味着在发出GET请求时,没有任何内容发送到ejs文件,但是在某些情况下,您将team设为defined,因此必须隐式实现这两种情况