Node js http/https request

function networkRequest(options) {
    const config = options.config;
    const protocol = (config.port === 443 ? https : http);

    return new Promise((resolve, reject) => {
        const request = protocol.request(config, (response) => {
            response.on('data', (d) => {
                resolve({promiseresult: d.toString('utf8')});
            });
            response.on('error', (d) => {
                reject({promiseresult: d.toString('utf8')});
            });
        });
      request.write(options.postdata)
        request.end();
    });
}

Использую такую функцию для запроса. Однако, когда сайт не присылает никакие данные, в промис никакой результат не передается, и все приложение падает.

Как это решить?


Ответы (1 шт):

Автор решения: Sergey Petrov
import axios from 'axios';

async function networkRequest(options) {
    const config = options.config;
    const protocol = (config.port === 443 ? https : http);
     
    try {
        const request = await axios.get(`${protokol}/config`);
        return response.data;
    } catch (e) {
        console.log(e);
    }
}

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

→ Ссылка