Как вернуть сообщение о доходе от запроса https, используя только собственный модуль https? - PullRequest
0 голосов
/ 08 декабря 2018

Я пытаюсь выполнить HTTPS-запрос в nodejs следующим образом:

var makeRequest = options => {
    const req = https.request(options, res => {
        // console.log('statusCode:', res.statusCode);
        // console.log('headers:', res.headers);
        res.on('data', d => {
            process.stdout.write(d);
        });
    });
    req.on('error', e => {
        console.error(e);
    });
    req.end();
    //   return results;
};

Вместо того, чтобы печатать его, я хотел бы вернуть это значение в другую функцию, которая должна выглядеть следующим образом: {items: [.., .., ...]}

1 Ответ

0 голосов
/ 08 декабря 2018

одним способом было бы написать функцию с обратным вызовом, где функция отправит запрос, так как ответ, который мы получим, будет потоком, который мы будем хранить во временной переменной, и после успешного получения всего ответа придетсяпередать ответ функции обратного вызова.

const https = require('https');
const StringDecoder = require('string_decoder').StringDecoder;

const options = {
    hostname: 'encrypted.google.com',
    port: 443,
    path: '/',
    method: 'GET'
  };


function getData(callbackfun){
    const req = https.request(options, (res) => {
        const decoder = new StringDecoder('utf-8');
        let responseData = '';
        res.on('data', (data) => {
            responseData += decoder.write(data);      
        });
        res.on('end',function(){
            responseData += decoder.end();
            callbackfun(responseData)
        })
    });

    req.on('error', (e) => {
        callbackfun(e)
    });
    req.end()   
}


getData((result)=>{
    console.log(result);
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...