Я ищу вариант, как перенести мой обработчик запросов Alexa в другой модуль.Это мой подход:
//index.js
var Alexa = require('ask-sdk-core');
var tests = require('./secondModule');
var LaunchRequestHandler = tests('LaunchRequest','Hello, is this working?')
var skillBuilder = Alexa.SkillBuilders.custom();
exports.handler = skillBuilder
.addRequestHandlers(
LaunchRequestHandler
)
.lambda();
и мой второй модуль выглядит следующим образом:
//secondModule.js
var Alexa = require('ask-sdk-core');
function Test(requestName, speechText){
var request = requestName+"Handler"
console.log("log: " +request)
request = {
canHandle(handlerInput) {
console.log("log: "+request)
return handlerInput.requestEnvelope.request.type === requestName;
},
handle(handlerInput) {
return handlerInput.responseBuilder
.speak(speechText)
.reprompt(speechText)
.withSimpleCard('Hello World', speechText)
.getResponse();
},
};
}
module.exports = Test
Но если я попробую это так, ошибка '"errorMessage": "Невозможно прочитать свойство'canHandle' из неопределенного "'появляется.Может быть, у вас есть идея, как я могу это сделать?Я довольно новичок с Node и JavaScript
, вот мой package.json:
{
"name": "hello",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"actions-on-google": "^2.5.0",
"ask-sdk-core": "^2.0.0",
"ask-sdk-model": "^1.0.0"
}
}