2016-01-08 5 views
0

Я писал API, используя API kat.cr и IMDB api тоже в nodejs, я не использовал json.stringify cuz. Я не знал об этом на момент написания haha XD, во всяком случае, проблема заключается в том, что, когда я Переберите код в 46 через 50, то ответ остается тем же вот пример, здесь является JSON генерируется,Проблема, связанная с ответом массива

{ 
    "MovieList": [{ 
    "title": "Jurassic World", 
    "imdb": "tt0369610", 
    "poster_med": "http://ia.media-imdb.com/images/M/[email protected]_V1_SX300.jpg", 
    "poster_big": "http://ia.media-imdb.com/images/M/[email protected]_V1_SX300.jpg", 
    "genres": ["Action, Adventure, Sci-Fi"], 
    "items": [{ 
     "torrent_magnet": "magnet:?xt=urn:btih:9D8BB2F07BC40BE4EA8EDAB7F7EB9C70A8AB2892&dn=maze+runner+the+scorch+trials+2015+hc+720p+hdrip+x264+shaanig&tr=udp%3A%2F%2Ftracker.publicbt.com%2Fannounce&tr=udp%3A%2F%2Fopen.demonii.com%3A1337", 
     "torrent_seeds": "1262", 
     "torrent_peers": "1306", 
     "id": "9D8BB2F07BC40BE4EA8EDAB7F7EB9C70A8AB2892" 
    }] 
    }, { 
    "title": "San Andreas", 
    "imdb": "tt2126355", 
    "poster_med": "http://ia.media-imdb.com/images/M/[email protected]_V1_SX300.jpg", 
    "poster_big": "http://ia.media-imdb.com/images/M/[email protected]_V1_SX300.jpg", 
    "genres": ["Action, Drama, Thriller"], 
    "items": [{ 
     "torrent_magnet": "magnet:?xt=urn:btih:9D8BB2F07BC40BE4EA8EDAB7F7EB9C70A8AB2892&dn=maze+runner+the+scorch+trials+2015+hc+720p+hdrip+x264+shaanig&tr=udp%3A%2F%2Ftracker.publicbt.com%2Fannounce&tr=udp%3A%2F%2Fopen.demonii.com%3A1337", 
     "torrent_seeds": "1262", 
     "torrent_peers": "1306", 
     "id": "9D8BB2F07BC40BE4EA8EDAB7F7EB9C70A8AB2892" 
    }] 
    }] 
} 

Вот код гусеничный:

var kat = require('kat-api'); 
var IMDb = require('imdb-scraper'); 
var movieTitle = require('movie-title'); 
var nameToImdb = require("name-to-imdb"); 
var movie = require('node-movie'); 
var fs = require('fs'); 
var util = require('util'); 
var log_file = fs.createWriteStream(__dirname + '/main.json', { 
    flags: 'w' 
}); 
var log_stdout = process.stdout; 

var config = '720p 2015'; //This is the line that should be changed if needed! 

console.log = function(d) { // 
    log_file.write(util.format(d) + '\n'); 
    log_stdout.write(util.format(d) + '\n'); 
}; 

var kat = require('kat-api'); 
kat.search({ 
    query: config, 
    category: 'movies', 
    language: 'en' 
}).then(function(response) {  
    var quotes = '"'; 
    var startingOfJson = "{" + quotes + "MovieList" + quotes + ":" + "["; 
    var endingOfJson = "}"; 
    var itemStart = quotes + "items" + quotes + ":" + "[{"; 
    var itemEnd = "}]"; 

    console.log(startingOfJson); 
    for (i = 0; i <= 20; i++) {  
    var titleForEverything = movieTitle(response.results[i].title); 

    movie(titleForEverything, function(err, data) { 

     console.log("{"); 
     console.log(quotes + "title" + quotes + ":" + quotes + data.Title + quotes + ","); 
     console.log(quotes + "imdb" + quotes + ":" + quotes + data.imdbID + quotes + ","); 
     console.log(quotes + "poster_med" + quotes + ":" + quotes + data.Poster + quotes + ","); 
     console.log(quotes + "poster_big" + quotes + ":" + quotes + data.Poster + quotes + ","); 
     var genres = quotes + "genres" + quotes + ":" + "[" + quotes + data.Genre + quotes + "]" + ","; 
     console.log(genres); 
     console.log(itemStart); 
     console.log(quotes + "torrent_magnet" + quotes + ":" + quotes + response.results[i].magnet + quotes + ","); 
     console.log(quotes + "torrent_seeds" + quotes + ":" + quotes + response.results[i].seeds + quotes + ","); 
     console.log(quotes + "torrent_peers" + quotes + ":" + quotes + response.results[i].peers + quotes + ","); 
     console.log(quotes + "id" + quotes + ":" + quotes + response.results[i].hash + quotes); 
     console.log(itemEnd); 
     if (i == 20) { 
     console.log("}"); 
     } else { 
     console.log("},") 
     } 
    }); 
    } 
}).catch(function(error) { 
    console.log('an error occured' + error); 
}); 
console.log("]}"); 

и вы можете видеть, что магнит, семена, хэш и сверстники остаются теми же для всех полученных результатов! Как я могу это исправить и почему это происходит? Спасибо! : D

+2

Включите соответствующий код здесь, а не в пастебин. Нам не нравится нажимать на ссылки, чтобы увидеть код –

+0

Мне очень жаль, что я не знал, как это сделать, как мне это сделать? –

+0

http://stackoverflow.com/help/how-to-ask –

ответ

1

Вы совершаете классическую ошибку функции внутри цикла, закрывающегося по индексу цикла i; когда функция будет выполнена, i уже имеет свое окончательное значение. Самый простой способ исправить это - for (let i.

+0

Я не совсем понял это, не могли бы вы объяснить с помощью примера кода ? –

+0

Возможно, с моим кодом? С тех пор как я попытался с let i и он показывает: SyntaxError: объявления с расширенной областью (let, const, function, class) еще не поддерживаются за пределами строгого режима –

+0

Хммм ..... тогда попробуйте в строгом mode? –

Смежные вопросы