Ошибка выдачи POST функции Axios Azure в NODEJS

Я использую следующий код, который вызывает ошибку, как показано ниже.

Выполнено "Functions.TranslateFunction" (Failed, Id=4cc27692-14a1-4c22-b0b7-7615d9812950) [10.12.2019 10:40:06 AM] System.Private.CoreLib: Исключение при выполнении функции: Functions.TranslateFunction. System.Private.CoreLib: Результат: Ошибка исключения: TypeError: context.error не является функцией Стек: TypeError: context.error не является функцией в module.exports (C:\Users\M1056438\Coding\Functions\TranslateFunction\index.js:26:13) в processTicksAndRejection (internal/process/task_queues.js:93:5).

const axios = require('axios');
module.exports = async function (context, req) {
    context.log('JavaScript HTTP trigger function processed a request.');

    if (req.query.name || (req.body && req.body.name)) {

// Make a QNA maker API call
var postData = {
    question: "Who are you"
  };
  let axiosConfig = {
    headers: {
        'Content-Type': 'application/json',
        "Authorization":"EndpointKey ********"
    }
  };

  try {
    const response =  await axios.post('https://qnamakercommonfordemos.azurewebsites.net/qnamaker/knowledgebases/********/generateAnswer', postData,axiosConfig)
    context.log(`statusCode: ${response.statusCode}`);
    context.log(response);
    context.done();
    return response; // or return a custom object using properties from response
  } catch (error) {
    // If the promise rejects, an error will be thrown and caught here
    context.error(error);
  }


        context.res = {
            // status: 200, /* Defaults to 200 */
            body: response
        };
    }
    else {
        context.res = {
            status: 400,
            body: "Please pass a name on the query string or in the request body"
        };
    }
};

1 ответ

Думаю нет функции error определено на contextобъект. Но в context.log доступны дополнительные методы ведения журнала, которые позволяют писать журналы функций на других уровнях трассировки:

например:

context.log.info({hello: 'world'});

context.log.error("An error has occurred.");

Подробнее об объекте context читайте здесь:

https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference-node

Так что ты можешь изменить context.error к context.log.error

Другие вопросы по тегам