Здравствуйте. Я нуб. Столкнулся с проблемой. Установил nodejs (6.11.4). Запускаю рабочий код через терминал в Visual Studio Code (node имя_файла). Подключаю модули (npm install имя_модуля). Выдает ошибку: "ReferenceError: link is not defined". Код у всех запускается, но у меня нет.
var request = require('request'),
cheerio = require('cheerio'),
fs = require('fs'),
path = require('path'),
res_arr = [],
ind = 0,
count_posts = 500;
var news_base_url = 'http://need.url?p=';
var file_json = path.resolve(__dirname, 'parse_file.json');
get_page_content(news_base_url + 0, 0);
function get_page_content( url, i ) {
request(url, function ( error, response, body ) {
if( !error ) {
var $ = cheerio.load(body),
newses = $('.news-item');
newses.each(function () {
var self = $(this),
cont = self.find('.news-text');
res_arr[ind++] = {
title: cont.find('.title').text(),
date : cont.find('.date').text(),
link : cont.find('a').attr('href'),
img : cont.find('img').attr('src')
}
get_post_content(link, ind);
ind++;
});
} else {
console.log("Произошла ошибка: " + error);
}
});
}
function get_post_content( link, array_index ) {
request(link, function ( error, response, body ) {
if( !error ) {
var $ = cheerio.load(body, {decodeEntities: false});
res_arr[array_index].content = $('.text').html();
} else {
console.log("Произошла ошибка: " + error);
}
if( count_posts-- <= 0 ){
write_parse_res( file_json, JSON.stringify(res_arr) );
}
});
}
function write_parse_res( file_json, str ) {
fs.writeFile(file_json, str, function ( err ) {
if( err ) {
console.log(err);
} else {
console.log('Добавил все');
}
});
}
Странно, что код у всех запускается. Очевидно ошибка возникает в вызове
get_post_content(link, ind);
здесь link не определена. Судя по коду в get_post_content должно передаваться содержимое поля link
link : cont.find('a').attr('href'),
замените вызов например на
get_post_content(res_arr[ind-1].link, ind);
и очень сомнительно выглядит двойное увеличение индекса ind. Сначала в
res_arr[ind++]
потом (двумя строчками ниже) в
ind++;
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть div, который намного больше размера окнаИщу такую библиотеку или способ, чтобы по этому элементу можно было перемещаться как в гугл картах...
По каким-то непонятным причинам Canvas не хочет выполнять анимацию заполнения холста через setTimeout()В браузере получается просто конечный результат,...
Каким образом можно (возможно ли?) с помощью userscript (greasemonkey)изменить параметр конфигурации(about:config)вfirefox`?