2017-08-20 5 views
0

Ich habe einen Fehler, wo ich nicht richtig an meine Nachricht ID anhängen kann. Unten ist, was ich versucht habe, jede Hilfe/Hinweise wäre großartig.angefügte Kommentare Schleife zu viele Male Javascript

Routen-Datei:

router.get('/home', function(req, res){ 
    if(req.cookies.user_id){ 
     knex.raw(`SELECT * FROM users WHERE id = ${req.cookies.user_id}`) 
      .then(function(user){ 
       knex.raw(`SELECT * FROM messages JOIN users on users.id = 
       messages.user_id`) 
       .then((joinInfo)=>{ 
        knex.raw(`SELECT comments.id, users.username, messages.id 
        as mess_id, messages.body, comments.message_id, users.id 
        as us_id, comments.commentsbody, comments.created_at, 
        comments.updated_at FROM comments JOIN messages ON 
        comments.message_id = messages.id JOIN users on 
        comments.user_id = users.id`) 
        .then((commentInfo)=>{ 
        res.render('loggedInHome', {user: user.rows[0], 
       messagedata: joinInfo.rows, title: 'Seddit', commentInfo: 
       commentInfo.rows}) 
       }) 
      }); 
     }).catch((err)=>{ 
      console.log(err, 'ERRRRR') 
      res.redirect('/') 
    }) 
} 

})

ejs Ansichten Seite

 <main class='main_content'> 
     <% for (var j = 0; j < messagedata.length; j++) { %> 
     <div class='message_box'> 
      <p><strong><%= messagedata[j].username %></strong>: <%= 
      messagedata[j].body %></p> 
     <% for (var i = 0; i < commentInfo.length; i++) { %> 
      <% if (commentInfo.mess_id == messagedata.comment_id) { %> 
       <p><strong><%= commentInfo[i].username %> 
       comments</strong>: <%= commentInfo[i].commentsbody %></p> 
      <% } %> 
     <% } %> 
     <% } %> 
     </div> 
    </main> 

auf localhost, wenn ich die Informationen anzuzeigen. Es gibt viele Wiederholungen und wenn ich die if-Anweisung console.log anlog, antwortet es normalerweise mit undefiniert. Ich habe Stunden damit verbracht Dinge neu zu arrangieren und kann es einfach nicht zur Arbeit bringen.

+0

Wo genau ist das Problem? Was wird in der Konsole ausgegeben, wie sieht die Struktur der zurückgegebenen Daten aus? –

+0

'console.log die if-Anweisung reagiert normalerweise mit undefined' - zeigen Sie, was/wo Sie loggen –

+0

es ist so ziemlich wie ein Klon reddit, so dass ein Benutzer eine Nachricht erstellen kann. Das Problem, das ich habe ist, dass, wenn ich versuche, die Kommentare zu dieser Nachricht zu zeigen, die Kommentare auftauchen, aber sie sind nicht an ihre spezifische Nachricht angehängt. – Jives

Antwort

1

Es ist wahrscheinlich, weil Sie eine für Schleife innerhalb einer anderen setzen, so dass die innere Schleife das Ergebnis zeigen würde mal die Nummer Ihrer äußeren Schleife läuft.