ENOTFOUND при вызове API из Azure Функции NodeJS - PullRequest
0 голосов
/ 21 февраля 2020

Я пытаюсь сделать вызов API с использованием Azure функций. Но я получаю ошибку ниже.

{
  "errno": "ENOTFOUND",
  "code": "ENOTFOUND",
  "syscall": "getaddrinfo",
  "hostname": "https://jsonplaceholder.typicode.com",
  "host": "https://jsonplaceholder.typicode.com",
  "port": "80"
}

Мой код

var http = require('http');

module.exports = function (context) {
    context.log('JavaScript HTTP trigger function processed a request.');

    var options = {
        host: 'https://jsonplaceholder.typicode.com',
        port: '80',
        path: '/users',
        method: 'GET'
    };

    // Set up the request
    var req = http.request(options, (res) => {
        var body = "";

        res.on("data", (chunk) => {
            body += chunk;
        });

        res.on("end", () => {
            context.res = body;
            context.done();
        });
    }).on("error", (error) => {
        context.log('error');
        context.res = {
            status: 500,
            body: error
        };
        context.done();
    });
    req.end();
};

Как я могу решить эту проблему?

1 Ответ

1 голос
/ 21 февраля 2020

Вы допустили несколько распространенных ошибок:

  • Вы используете модуль http для https URL.
  • Измените значение хоста на jsonplaceholder.typicode.com
  • Для протокола протокола https должно быть 443

Измените следующие параметры:

Для http :

var options = {
        host: 'jsonplaceholder.typicode.com',
        port: '80',
        path: '/users',
        method: 'GET'
    };

Для https:

Использование модуля https для создания объекта запроса и опций должно быть таким

 var options = {
            host: 'jsonplaceholder.typicode.com',
            port: '443',
            path: '/users',
            method: 'GET'
    };

Демо: https://repl.it/repls/RepentantGoldenrodPriority

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