Задать вопрос
  • Авторизация при использовании модуля "request" в Node.js

    @TempUserMain Автор вопроса
    buzzi888
    В приведенной ссылке устаревшая форма, более не используемая.

    При измении кода на:
    var options = {
        host: '<адрес сервера>',
        path: '<путь до интересующей страницы>',
        auth: '<логин>:<пароль>'
    };
    
    http.get(options,function(response){
    
        var pageData = "";
    
        response.on('data', function (chunk) {
            pageData += chunk;
        });
        
        response.on('end', function(){
            res.write(pageData);
            res.end();
        });
    
    });


    Появляется ошибка:
    events.js:72
            throw er; // Unhandled 'error' event
                  ^
    Error: getaddrinfo ENOTFOUND
        at errnoException (dns.js:37:11)
        at Object.onanswer [as oncomplete] (dns.js:124:16)

    В чем может быть причина ошибки?

    UPD:

    Проблема решена.

    Адрес сервера начинался с "http://".
    Для корректного выполнения кода необходимо в адресе сервера убирать "http://"

    UPD_2:

    Возможно подскажите, как перенаправить ответ на запрос в файл?

    Ранее в Node..JS для это использовалось:
    request('<адрес интересующей страницы>').pipe(
        fs.createWriteStream('<txt-файл, в который записывается текст с рассматриваемой страницы>');


    UPD_3:

    Авторизация для модуля request:

    var options = {
        uri: '<адрес интересующей страницы>',
        auth: { 'user':'<логин>', 'password':'<пароль>' }
    };
    
    request(options, callback)

    Тем не менее, все еще не знаю, как реализовать метод callback для перенаправления информации со страницы в файл.

    UPD_4:

    Вопрос решен.

    Для авторизации и получения информации со страницы необходимо использовать:

    var options = {
        uri: '<адрес, начинающийся с http://, https:// или другого>',
        auth: { 'user':'<логин>', 'password':'<пароль>' }
    };
    
    function callback(error, response, body) {
         if (!error && response.statusCode == 200) {
    
             fs.writeFile('<файл, в который выводится информация>', body, function (err) {
                 if (err) throw err;
             });
    
         }
         else {
            console.log("Error: " + error);
         }
     }
    
    var req = request(options, callback);
    Ответ написан
    Комментировать