我正在使用request
从 yts.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;
最佳答案
您正在一遍又一遍地将包含 movie_id
的查询字符串添加到请求 URL。因此,只有第一个请求有效,而所有后续请求的请求 URL 均无效。而是在请求回调中创建一个新的请求 URL。此外,您只需忽略可能遇到的任何错误。
关于javascript - JSON 请求返回空主体 Nodejs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40735425/