服务器在node.js

时间:2016-12-22 17:59:48

标签: javascript node.js ejs

我正在创建node.js应用。

我有一个包含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>

1 个答案:

答案 0 :(得分: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>
<% }) %>
在&#34; post&#34;之后没有重新处理

完成。