当我将辅助功能移到其他模块时,为什么我的技能会有所不同?

时间:2019-01-07 22:40:17

标签: node.js alexa alexa-skills-kit alexa-skill

我正在尝试重新创建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

这是我的代码文件:

  1. index.js
  2. functions.js
  3. data.js

我认为正在发生的事情是变量状态没有在模块之间持久存在,但是我可能错了。我有两个问题:

  1. 任何人都可以告诉我我为什么会这样吗 对吗?
  2. 如何防止这种情况?

0 个答案:

没有答案