2016-11-22 144 views
0

我使用requestyts.ag/api获得电影列表,并显示它们在缩略图的网格,当我点击每个缩略图我带到另一个页面显示更多电影的细节,当我第一次点击缩略图数据时,下次我点击相同的电影或其他电影body是空的,我将不得不重新启动服务器的工作,它只适用于在request之后的一个请求返回空的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中放更多东西。您需要执行request(url +'?movie_id ='+ req.params.id)',以便基本url保持不变。这将修复只能工作一次的代码。 – nicovank

回答

1

你加入含有movie_id请求URL一遍又一遍的查询字符串。因此,只有第一个请求可以工作,而所有后续请求都具有无效的请求URL。请在请求回调中创建新的请求网址。另外,你只是忽略了你可能得到的任何错误。