Node.js Alexa skill回答抱歉,我很难按照你的要求去做。请再试一次

Node.js Alexa skill回答抱歉,我很难按照你的要求去做。请再试一次,node.js,aws-lambda,alexa,alexa-skills-kit,Node.js,Aws Lambda,Alexa,Alexa Skills Kit,这是我的代码,我正在使用hello world模板。我编辑了内置helloworld intent,但当我调用getfactintent时,我收到一条错误消息。您是如何询问的?真实的还是通过技能控制台中的“测试”选项卡 如果是真的:尝试在技能控制台中执行同样的操作,并测试您的技能。您将在右侧的JSON响应中看到一个响应,可能还有更详细的错误解释。如果这是Alexa托管的技能,请尝试代码面板左下角的CloudWatch链接。日志应包含错误消息(如果有) 获取随机事实时,使用数组“pitFile.f

这是我的代码,我正在使用hello world模板。我编辑了内置helloworld intent,但当我调用getfactintent时,我收到一条错误消息。

您是如何询问的?真实的还是通过技能控制台中的“测试”选项卡


如果是真的:尝试在技能控制台中执行同样的操作,并测试您的技能。您将在右侧的JSON响应中看到一个响应,可能还有更详细的错误解释。

如果这是Alexa托管的技能,请尝试代码面板左下角的CloudWatch链接。日志应包含错误消息(如果有)

获取随机事实时,使用数组“pitFile.fact”,但在随机数生成中获得“pitFile.facts”的长度。人们会认为这些应该是相同的


由于它们不是,您可能会得到一个错误,即它“无法读取未定义的属性长度”,或者pitFile.fact不是数组。这将显示在CloudWatch日志中。

我在代码的第8行找到了错误 var newFact=pitFile.facts[Math.floor(Math.random()*pitFile.fact.length)]//搜索要以随机顺序返回的事实000561


“pitFile.fact.length”实际上应该是“pitFile.facts.length”

我通过测试选项卡询问,搜索了一条错误消息没有关于修改右侧面板给出的输出的消息,我注意到Alexa正在将启动请求注册为会话结束请求如何停止此操作??
const FactIntentHandler = {
        canHandle(handlerInput) {
    const request = handlerInput.requestEnvelope.request;
    return (request.type === 'IntentRequest' && request.intent.name === 'GetFactIntent');
        //&& Alexa.getIntentName(handlerInput.requestEnvelope) === 'GetFactIntent';
},
handle(handlerInput) {
    var newFact = pitFile.facts[Math.floor(Math.random() * pitFile.fact.length)];//search for fact to return in random order 000561
    var factResult = newFact.text; // store fact 000561
    //speakoutput is a var and not a const because we want it to change 000561
    var speakOutput = "Here's why we love pits:" + factResult;

    return handlerInput.responseBuilder
        .speak(speakOutput)
        //.reprompt(speakOutput)
        .getResponse();
  }
};