0

request用来从yts.ag/api获取电影列表,并将它们显示在缩略图网格中,当我单击每个缩略图时,我会被带到另一个页面,该页面显示电影的更多详细信息,当我第一次检索数据时单击缩略图,下次单击同一部电影或其他电影时body为空,我必须重新启动服务器才能正常工作,并且在request返回 empty后它仅适用于一个请求body。似乎是什么问题,或者我执行request错误?

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;
4

1 回答 1

1

movie_id一遍又一遍地将包含的查询字符串添加到请求 URL。因此,只有第一个请求有效,而所有后续请求的请求 URL 均无效。而是在您的请求回调中创建一个新的请求 URL。此外,您只需忽略可能遇到的任何错误。

于 2016-11-22T06:50:26.257 回答