2017-09-13 2 views
0

Ich versuche eine Todo-App mit Node.js mit EJS als Templating-Engine zu machen. Alle Objekte sind in 3 Arrays unterteilt: Subjekt, Datum und Detail. Sie sind in den Arrays.Loop-Through-Array mit Node.JS und EJS

ich diesen Code in der Schnellstraße bin mit:

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}); 
     } // ... 
     }); 
    }); 

Und diesen Code auf der EJS-Vorlage:

<!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> 

Nur der erste Eintrag angezeigt wird, obwohl es 3 im Array .

Vielen Dank!

Ben Fein

Antwort

0

aus dem Code zu lesen Ich sehe, dass die 3-Arrays Themen, duedates und Details Namen unterschiedlich sind meine ich Sie vermissen die 's' für alle 3-Arrays während innerhalb für Schleife angezeigt wird. Fügen Sie diese hinzu. Es wird gut funktionieren.

Verwandte Themen