Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对https API的IBM web操作调用不起作用_Javascript_Node.js_Https_Webhooks_Ibm Watson - Fatal编程技术网

Javascript 对https API的IBM web操作调用不起作用

Javascript 对https API的IBM web操作调用不起作用,javascript,node.js,https,webhooks,ibm-watson,Javascript,Node.js,Https,Webhooks,Ibm Watson,我正在用IBM Watson创建一个助手。助手将一些信息传递给调用https API并以JSON格式将数据回传给助手的web操作 看起来web操作只是在工作,不时会弹出一条消息“错误:该操作未生成有效响应,并意外退出。”。目前尚不清楚何时或是什么触发了故障。在几秒钟内多次调用完全相同的操作会导致错误消息随机出现(我没有更改操作中的任何内容或调用之间的代码)。当没有错误时,代码工作正常并提供了预期的答案 这里是紧凑的代码: function main(msg){ const https = r

我正在用IBM Watson创建一个助手。助手将一些信息传递给调用https API并以JSON格式将数据回传给助手的web操作

看起来web操作只是在工作,不时会弹出一条消息“错误:该操作未生成有效响应,并意外退出。”。目前尚不清楚何时或是什么触发了故障。在几秒钟内多次调用完全相同的操作会导致错误消息随机出现(我没有更改操作中的任何内容或调用之间的代码)。当没有错误时,代码工作正常并提供了预期的答案

这里是紧凑的代码:

function main(msg){
  const https = require('https');
  var reqUrl = https URL;

return new Promise(function(resolve, reject) {
    https.get(reqUrl, (responseFromAPI) => {
        responseFromAPI.on('data', (chunk) => {
               completeResponse += chunk;
               let movie_info = JSON.parse(completeResponse);
               movie_info = movie_info.results[0];
               console.log(movie_info);
               resolve({movie_info});
        })
        responseFromAPI.on('error', (error) => {
            console.log(error);
            reject(error);
        });
    });
});
}
错误日志如下所示:

[ “2019-06-06T14:35:32.697875Z标准:未定义:1”, 2009-06-06-06-06-0614:35:35:32.696979099 z stderr:{“页面”1,“总体结果结果结果”76,“总体结果”页面”76,“总体页面”4,,,“结果”结果:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,“总体网页”总网页:::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,类型识别码\“[27,37,53],“背景路径”:“/Bqi6qbbxmkbar98hjkev1hfx71.jpg”,“成人”:假,“概述”:“一部以19世纪末西部边疆为背景的超自然惊悚片,《风》将凯特琳·杰拉德塑造成一个平原女人,被荒芜的土地的严酷和孤立逼疯了。”,“发布日期”:“2019-06-06”,{“计票”:2832,\“id”\“:353491,\'video\':false,\'vote\u average\':5.6,\'title\':'The Dark Tower\',\'popularity\':18.474,\'poster\u path\':\“/I9GusgddiqrrouqrroubilsvmryyRyRy0.jpg\”,“original\u language\':“en\”,“original\u title\u\':“The Dark Tower\”:“The Dark Tower\”,“流派ID\”:[28,14878,37,27],“Background\nCeVvg8pV0Pvg\”,“false”,“成人概览”\“最后一名枪手罗兰·德肖恩与沃尔特·奥迪姆(Walter O'Dim)展开了一场永恒的战斗,也被称为, “2019-06-06T14:35:32.697914Z标准:”, “2019-06-06T14:35:32.697951Z标准:语法错误:JSON输入意外结束”, “2019-06-06T14:35:32.697955Z标准:在JSON.parse()”, “2019-06-06T14:35:32.697959Z标准:在IncomingMessage.responseFromAPI.on(在NodeActionRunner.init(/nodejsAction/runner.js:79:45)处求值),:10:38”, “2019-06-06T14:35:32.697963Z标准:在IncomingMessage.emit(events.js:189:13)”中, “2019-06-06T14:35:32.697968Z标准代码:at IncomingMessage.Readable.read(_stream_Readable.js:487:10)”, “2019-06-06T14:35:32.697972Z标准:流量(_stream_readable.js:931:34)”, “2019-06-06T14:35:32.697976Z标准:在简历上(_stream_readable.js:912:3)”, “2019-06-06T14:35:32.697980Z标准:在过程中._tickCallback(内部/过程/下一步_tick.js:63:19)”, “未知:收集日志时出现问题。数据可能丢失。” ]

movie_info是电影和数据的列表,因此代码仅拾取位置[0]中的数据(此处为电影“风”)

我联系了API主机,他们说API工作正常,因此问题可能来自web操作本身


非常感谢您的帮助。

您并不是解析所有响应,而是只解析第一个块

function main(msg){
  const https = require('https');
  var reqUrl = https URL;

return new Promise(function(resolve, reject) {
    https.get(reqUrl, (responseFromAPI) => {
       const chunks = [];
        responseFromAPI
          .on('data', chunk => chunks.push(chunk))
          .on('end', _=> {
               let movie_info = JSON.parse(Buffer.concat(chunks));
               movie_info = movie_info.results[0];
               console.log(movie_info);
               resolve({movie_info});
          })
          .on('error', (error) => {
            console.log(error);
            reject(error);
        });
    });
});
}

非常感谢@Yaroslav Gaponov!!!我的promise结构在http调用中使用时没有出现任何问题。为什么需要在此处更改?我是一名新手,因此非常感谢提供任何文档:)