Как я могу заставить это перезапустить, если это не английский результат? - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть API на https://dev -qaboomapi.azurewebsites.net / randmovie . У меня есть текстовый файл, в котором перечислены все идентификаторы фильмов из https://themoviedb.org, один из которых выбирается случайным образом, и информация представлена ​​по адресу 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 голосов
/ 30 сентября 2019

Вот что вы можете попробовать, но убедитесь, что функция не запускается бесконечность, если результат не на английском языке.

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);
            }
        })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...