2017-09-13 68 views
0

我正在嘗試使用EJS作爲模板引擎來製作使用Node.js的todo應用程序。所有對象都有三個數組:主題,日期和細節。他們在陣列中。使用Node.JS和EJS環路陣列

我使用這個代碼在快遞路線:在陣列中

<!DOCTYPE html> 
<html> 

<head> 
    <title>Pencil and Pens</title> 
</head> 

<body> 
    <center> 
     <h1>Pencil and Pens</h1> 
     <h2>Welcome: 
      <%= username %> 
     </h2> 
     <form action="/addassignment" method="post"> 
      Subject: <input type="text" id="subject" name="subject"> Due Date: <input type="duedate" name="duedate"> Details: 
      <input type="details" name="details"> 
      <input type="submit" value="Add Assignment..."> 
     </form> 
     <br /> 
     <div id="assignmentbody"> 
      <% for(var i=0; i < subject.length; i++) { %> 
       <%= subject[i] %> | 
        <%= date[i] %> | 
         <%= detail[i] %> 
          <form style="display:inline-block;" action="/deleteAssignment" method="post"> 
           <% } %> 
     </div> 
    </center> 
    <script type="text/javascript"> 
    </script> 
</body> 

</html> 

只有第一項甚至顯示雖然有3:

app.get('/dashboard', function (req, res) { 
     var subjects = []; 
     var duedates = []; 
     var details = []; 
     var ids = []; 

     var userId = 'some user provided value'; 
     var sql = 'SELECT * FROM assignments WHERE owner = "' + req.user.email + '"'; 
     connection.query(sql, function (error, results, fields) { 
     if (error) throw error; 

     for (i = 0; i < results.length; i++) { 

      subjects.push(results[i]['subject']); 
      duedates.push(results[i]['duedate']); 
      details.push(results[i]['details']); 
      ids.push(results[i]['id']); 

      console.log(details) 

      //res.render('dashboard',{username:req.user.email, subject: subjects, date: duedates, detail: details, id: ids}); 
     } // ... 
     }); 
    }); 

而且在EJS模板的代碼。

非常感謝!

本黨

回答

0

從閱讀你的代碼,我看到3個陣列科目duedates細節名稱不同我的意思是你缺少的「S」所有3個陣列同時在內部顯示循環。添加這些。它會正常工作。