我在https://dev-qaboomapi.azurewebsites.net/randmovie有一个API。我有一个txt文件,其中列出了https://themoviedb.org中的所有电影ID,并且是一个随机选择的文件,其信息显示在上面的API地址中。我无法解决的是如何使它检查结果是否为英语电影,然后如果不是,请再试一次。
我有一个If Else语句,用于检查结果是否为英语电影,但如果不是重新开始该过程,我将无法解决。
var appRouter = function (app) {
app.get("/randMovie", function (req, res) {
const fetchURL = require('fetch').fetchUrl;
const fs = require('fs');
const data = fs.readFileSync('./db/MovieIDs.txt') + '';
const splitData = data.split('\n');
const randomNumber = Math.floor(Math.random() * splitData.length);
const line = splitData.splice(randomNumber, 1);
const lineDATA = line.toString()
const api = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'
var movieID = lineDATA
var URL = 'https://api.themoviedb.org/3/movie/' + movieID + '?api_key=' + api + "&append_to_response=videos"
fetchURL(URL, function(error, meta, body){
var movieString = body.toString()
var movieJSON = JSON.parse(movieString)
if(movieJSON.original_language == "en") {
res.status(200).send(movieJSON);
} else {
// Not sure what to put here
}
})
});
}
module.exports = appRouter;
我希望它仅在以下情况下返回电影的详细信息:
if(movieJSON.original_language == "en")
,然后在不存在时重试。
答案 0 :(得分:0)
这里是您可以尝试的方法,但是如果结果不是英语,请确保该函数不会无限运行。
var appRouter = function (app) {
app.get("/randMovie", function (req, res) {
retrieveData(req, res);
}
retrieveData
的定义
retrieveData(req, res){
const fetchURL = require('fetch').fetchUrl;
const fs = require('fs');
const data = fs.readFileSync('./db/MovieIDs.txt') + '';
const splitData = data.split('\n');
const randomNumber = Math.floor(Math.random() * splitData.length);
const line = splitData.splice(randomNumber, 1);
const lineDATA = line.toString()
const api = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'
var movieID = lineDATA
var URL = 'https://api.themoviedb.org/3/movie/' + movieID + '?api_key=' + api + "&append_to_response=videos"
fetchURL(URL, function(error, meta, body){
var movieString = body.toString()
var movieJSON = JSON.parse(movieString)
if(movieJSON.original_language == "en") {
res.status(200).send(movieJSON);
} else {
// Not sure what to put here
retrieveData(req, res);
}
})
}