2017-06-26 9 views
-1

誰もが私は基本的にJSONファイルを取得し、配列のさまざまなインスタンスを出力するルータを持っています。私はconsole.logの私のforループのタイトルをループして出力し、各インスタンスが出力され、素晴らしい作品です。 res.renderをforループの中に入れ、同じ変数をconsole.logにループさせて渡すと、最初のインスタンスのみが出力されます。誰がなぜこれが分かっていますか? res.renderをループして、console.logと同じJSON内のすべてのインスタンスを出力する方法があります。res.renderのノードjsループ

は何res.render

router.get('/fuelTypeFilter', function(req, res, next) { 

     var url = "Example.JSON" 

     request({ 
      url: url, 
      json: true 
      }, function (error, response, obj) { 

      if (!error && response.statusCode === 200) { 
       // console.log(obj) // Print the json response 
       for(key in obj.categories){ 
        var img = obj.categories[key]; 
        var title = obj.categories[key].product_category_title; 

        console.log(title); 
        // console.log(obj.categories[key]); 
       } 
       res.render('fuelTypeFilter', { title: 'Fuel Type', item: title }); 
      } //end of if 

     }); // end of request 
}); 

答えて

0

、お時間をいただき、ありがとうございますオブジェクトなどのデータを使用すると、レンダリング呼び出しに渡すので、基本的に、挿入されたいくつかのテンプレートを使用してプレーンなHTMLファイルをアップサーブです。そのため、res.renderreturnのように動作します。コードがそのマークに達すると、このページをレンダリングする必要があることをルータに通知します(ブラウザに表示されます)ので、ルータ処理ロジックを使用する必要があります。

レンダリングコールをループスルーすることができるかどうかについては、成功したとしても瞬時に複数のページを表示することを意味するため、答えは「いいえ」です。ブラウザでのビューが瞬時に瞬時にリフレッシュされるので、レンダリングコールを続けたいとは思わないでしょう。

renderでこれを行う1つの方法は、配列のようなデータをres.renderに渡すオブジェクトにパッケージ化して、何らかのテンプレートエンジンを使用していると仮定して、そこに 'forループ'例えば、HTML divのように要素をループして印刷します。

これは少し役に立ちます。