В данной статье я покажу Вам как с помощью NodeJS можно скачать файл (в нашем случае - html-страницу ) с удаленного сервера. Пригодиться это может, например, при чтении RSS ленты .

Как скачать страницу сайта с помощью NodeJS?

В данной статье я покажу Вам как с помощью NodeJS можно скачать файл (в нашем случае - html-страницу) с удаленного сервера. Пригодиться это может, например, при чтении RSS ленты.

Итак, код далее:

const https = require('https')


// функция загружает удаленный URL

function readURL(url) {
    
    // возвращаем Promise - так как операция чтения может длиться достаточно долго
    return new Promise((resolve, reject) => {

        // встроенный в NodeJS модуль https
        // первый аргумент - url, второй - callback c параметром ответа сервера
        
        https.get(url, (res) => {

            // получаем статус ответа сервера посредством деструктуризации объекта
            const { statusCode } = res;
            

            let error;
            if (statusCode !== 200) {
                error = new Error(`Ошибка запроса. Код ответа: ${statusCode}`);
            }


            // при ошибке очищаем память и выходим
            if (error) {

                reject(error);
                res.resume();
                return;
            }
            

            // устанавливаем кодировку
            res.setEncoding('utf8');

            // собираем данные в строку
            let rawData = '';
            res.on('data', chunk => rawData += chunk);

            // после получения всех данных успешно завершаем Промис
            res.on('end', () => resolve(rawData));

        
            
        }).on('error', (e) => reject(e)); // ошибка -> отклоняем Промис
    })
}

Вызываем так

readURL('http://example.com')
    .then(data =>
        console.log(data)
    )
    .catch(err =>
        console.log(err.message)
    )