Ingore [Ошибка: подключить ETIMEDOUT IP-адрес] Ошибка в nodejs - PullRequest
0 голосов
/ 12 марта 2019

Я сканирую веб-сайт с помощью Nodejs, и у меня возникла проблема с ошибкой ETIMEOUT.

И кажется, что это работает хорошо, но иногда это показывает мне ошибку, и все приложение останавливается.

Я думаю, что запрашиваю слишком много данных за один раз, поэтому веб-сервер на некоторое время отказал мне.И это выдает мне ошибку.

Но когда я перезагружаю приложение снова, оно снова работает хорошо и внезапно останавливается.

Мой полный код выглядит следующим образом.

let postNumber;
request.get({
    url: 'https://www.clien.net/service/group/community'
}, function (err, response, body) {
    let $ = cheerio.load(body);
    postNumber = $('.list_item.symph_row').attr('data-board-sn');
})


function getData() {
    return new Promise(function (resolve, reject) {
        request.get({
            url: `https://www.clien.net/service/board/park/${postNumber}`
        }, function (err, response, body) {
            if (err) {
                console.log(err);
            }
            let $ = cheerio.load(body);
            let title = $('.post_subject span').text();
            let author = $('.nickname span').text();
            let content = $('.post_article.fr-view').text().replace(/(\r\n|\n|\r|\t|\\)/gm, "");
            if (title) {
                resolve('Found Data Title!!'); // Accept
                if (author === '') {
                    author = $('.nickname img').attr('alt');
                }
                console.log(`Now Processing POST NUMBER : ${postNumber}`);
                db.query(`INSERT INTO post (postNumber, title, author, content) VALUES (?,?,?,?)`, [postNumber, title, author, content]);
                postNumber--; //postNumber Decrease
                getData();  // run again
            } else {
                // reject('DATA NULL PAGE'); // Reject if sometimes no data
                postNumber--; //postNumber Decrease
                getData(); // run again
            }
        })
    })
}
getData();

image

Так что я думаю, что если я смогу проигнорировать сообщение об ошибке и просто снова запустить функцию getData (), она будет работать.Поэтому я поставил getData ();функция в

request.get({
            url: `https://www.clien.net/service/board/park/${postNumber}`
        }, function (err, response, body) {
            if (err) {
                console.log(err);
               getData();
            }

Но, похоже, это не ответ.Как я могу исправить эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...