2016-12-22 2 views
0

node.jsアプリケーションを作成しています。node.jsのサーバーから返されたprint変数

私は4種類の映画のリストを持っています(下記参照)。

これらのタイプのいずれかをクリックすると、私はサーバに電話をかけ、次にサーバはそのタイプのムービーをデータベースから取り出し、その結果を返します。 私のクライアント側では、サーバが私に送信した結果を正しく見ることができますが、すべてのムービーを画面にプリントするために結果をループすることはできません。あなたのポストコールバック関数内

<ul> 
    <li id="Animation">Animation</li> 
    <li id="Action">Action</li> 
    <li id="Comedy">Comedy</li> 
    <li id="Drama">Drama</li> 
</ul> 
<ul> 
<% movies.forEach(function(movie){ %> // doesnt work 
    <li><%= movie.id %> - <%= movie.title %></li> 
<% }) %> 
</ul> 

<script> 
$(document).ready(function() { 
    $('li').click(function(){ 
    var movieType = $(this).attr('id'); 
    $.post('findMovies', { type: movieType}, function(data){ 
     console.log(data); // I see the array correctly in browser's console 
     var movies = data; 
     }); 
    }); 
}); 
</script> 
+0

'data'が配列の場合、' data.forEach(function(movie){console.log(movie)}) ' – jfriend00

+1

@ jfriend00のように見えます。 「サーバ上で何が起こるか/クライアント上で何が起こるか」という混乱のケース – Pointy

+0

'console.log(data)'の結果を表示できますか? –

答えて

0

ループ:

... 
$.post('findMovies', { type: movieType}, function(data){ 
    data.forEach(function(movie){ 
     var li = $('<li/>') 
      .text(movie.id + ' - ' + movie.title) 
      .appendTo(ulRef);//assuming ulRef is a reference to the ul element above 
    }); 
}); 
... 

<% movies.forEach(function(movie){ %> 
    <li><%= movie.id %> - <%= movie.title %></li> 
<% }) %> 

が "ポスト" が完了した後に再処理されていないので、あなたのコードは動作しません。

関連する問題