2016-11-22 22 views
0

requestを使用して、yts.ag/apiからムービーのリストを取得し、サムネイルのグリッドに表示します。サムネイルをクリックすると、別のページに移動します映画の詳細、最初にサムネイルをクリックしたときにデータが取得されたとき、次回同じ映画や他の映画をクリックしたときにbodyが空の場合、サーバーを再起動する必要があります。 requestの後の1つの要求は、空のbodyを返します。何が問題になっていると思いますか?requestが間違っていますか?JSONでリクエストが空のボディを返すNodejs

var express = require('express'); 
var router = express.Router(); 
var request = require('request'); 
var url = 'https://yts.ag/api/v2/movie_details.json'; 

router.get('/:id', function (req, res, next) { 
    url += '?movie_id=' + req.params.id; 
    request(url, function (error, response, body) { 
     if (!error && response.statusCode == 200) { 
      if (body) { 
       var importJSON = JSON.parse(body); 
       res.render('movie', {title: 'Hypertube - Torrent streaming', moviedetails: importJSON.data.movie}); 
      }else { 
       res.render('movie', {title: 'Hypertube - Torrent streaming', moviedetails: false}); 
      } 
     } 
    }); 
}); 

module.exports = router; 
+1

あなたは毎回URLにもっと多くのものを入れています。ベースURLが変更されないように 'request(url + '?movie_id =' + req.params.id)'を実行する必要があります。これにより、コードは1回だけ修正されます。 – nicovank

答えて

1

あなたは何度も何度もリクエストURLへmovie_idを含むクエリ文字列を追加しています。したがって、最初のリクエストのみが動作し、その後のリクエストにはすべて無効なリクエストURLがあります。代わりに、リクエストコールバックに新しいリクエストURLを作成します。また、発生する可能性のあるエラーは無視してください。

関連する問題