Я пытаюсь воссоздать навык Alexa Quiz, который упоминается в их общедоступном хранилище . Пока что умение работает правильно, когда файл index.js
точно такой же, как в GitHub repo . Я пытаюсь переместить константы в отдельный файл данных, а вспомогательные функции - в другой файл. Когда я перемещаю константы в отдельный файл, код работает правильно. Однако, когда я перемещаю вспомогательные функции в другой файл, код начинает вести себя по-другому.
Я переместил константы в другой файл с именем data.js
и экспортировал переменные в этом файле, используя
module.exports = {
skillBuilder,
imagePath,
backgroundImagePath,
correctAnswer,
wrongAnswer,
data,
states,
welcome,
startQuiz,
exitSkill,
reprompt,
help,
useCardsFlag
};
В index.js
я импортировал переменные, используя const Constants = require('data');
После этого я протестировал код, и он работает правильно (как и должно быть).
Теперь я переместил вспомогательные функции в другой файл с именем 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');
Я ожидал, что навык будет работать правильно. Однако, когда я начинаю тест, используя умение, Алекса просто произносит Справочное сообщение .
Вот мои файлы кода:
- index.js
- functions.js
- data.js
Я думаю, что происходит то, что состояния переменных не сохраняются между модулями, но я могу ошибаться. У меня есть 2 вопроса:
- Может кто-нибудь сказать, если мое понимание того, почему это происходит,
исправить?
- Как это предотвратить?