请求使用JSON返回空体Nodejs

时间:2016-11-22 06:46:30

标签: javascript json node.js requestjs

我正在使用requestyts.ag/api获取电影列表,并以缩略图网格显示它们,当我点击每个缩略图时,我会将其带到另一个显示的页面电影的更多细节,当我第一次点击缩略图检索数据时,下次当我点击同一部电影或其他电影body为空时,我将不得不重新启动服务器才能正常工作并且它仅在request返回空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;

1 个答案:

答案 0 :(得分:1)

您正在反复将包含movie_id的查询字符串添加到请求网址中。因此,只有第一个请求才会生效,而所有后续请求都有一个无效的请求URL。而是在请求回调中创建一个新的请求URL。此外,您只需忽略可能出现的任何错误。