我正在尝试重新创建their public repository上提到的Alexa测验技能。到目前为止,当index.js
文件与GitHub repo中的文件完全相同时,该技能可以正常工作。我正在尝试将常量移动到单独的数据文件中,并将辅助函数移动到另一个文件中。当我在单独的文件中移动常量时,代码可以正常工作。但是,当我将辅助函数移动到另一个文件中时,代码开始表现出不同的行为。
我将constants移到了另一个名为data.js
的文件中,并使用
module.exports = {
skillBuilder,
imagePath,
backgroundImagePath,
correctAnswer,
wrongAnswer,
data,
states,
welcome,
startQuiz,
exitSkill,
reprompt,
help,
useCardsFlag
};
在index.js
中,我使用const Constants = require('data');
执行此操作后,我测试了代码,它可以正常运行(应该如此)。
现在,我将helper functions移到另一个名为functions.js
的文件中,并使用
module.exports = {
getBadAnswer,
getCurrentScore,
getFinalScore,
getCardTitle,
getSmallImage,
getLargeImage,
getImage,
getBackgroundImage,
getSpeechDescription,
formatCasing,
getQuestion,
getQuestionWithoutOrdinal,
getAnswer,
getRandom,
askQuestion,
compareSlots,
getItem,
getSpeechCon,
getTextDescription
};
并使用const Helpers = require('functions');
导入功能。
由于这些函数还引用了常量,因此我也使用functions.js
将常量导入了const Constants = require('data');
我希望这项技能能够正常工作。但是,当我使用该技能开始测验时,Alexa只会说出Help message。
这是我的代码文件:
我认为正在发生的事情是变量状态没有在模块之间持久存在,但是我可能错了。我有两个问题: