Прежде всего, я новичок в Javascript, поэтому, если в моем сообщении есть какие-либо неопределенности или неясности, пожалуйста, не стесняйтесь исправлять меня.
Я пытаюсь создать действие для поддержки моего IBM WatsonАссистент.После вызова действие должно получить некоторую информацию из http и дать ответ.
Действие «get» было частью Webhook, успешно развернутого через Heroku в качестве поддержки Dialogflow.Я просто немного его изменил, чтобы облегчить ответ.
function main(req){
const http = require('http');
const API_KEY = '85324cac';
const prodname = req.prodname;
const reqUrl = encodeURI(`http://www.omdbapi.com/?t=${prodname}&apikey=${API_KEY}`);
http.get(reqUrl, (responseFromAPI) => {
let completeResponse = '';
responseFromAPI.on('data', (chunk) => {
completeResponse += chunk;
});
responseFromAPI.on('end', () => {
const movie = JSON.parse(completeResponse);
let dataToSend = prodname ;
dataToSend += (typeof movie.Title === "undefined") ? `Sorry the film is not in our database` : `${movie.Title} is a ${movie.Actors} starer ${movie.Genre} movie, released in ${movie.Year}. It was directed by ${movie.Director}.`;
return {answer: dataToSend};
});
});
//return {answer: dataToSend};
}
Я ожидал ответа после действия "return", но он показывает только пустые значения.Я уверен, что действие никогда не попадет в часть "http.get".Когда я удаляю // и вызываю код, он возвращает следующее сообщение: «dataToSend не определен»;если я оставлю код таким, какой он есть (с комментарием), никаких ошибок не появится.
Омдапи бесплатно, но размещается в США, на случай, если это может иметь значение.
Есть идеи?В любом случае заранее спасибо.