如果不是英文结果,如何重新启动?

时间:2019-09-30 03:21:19

标签: node.js express

我在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")

,然后在不存在时重试。

1 个答案:

答案 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);
            }
        })
}