gpt4 book ai didi

node.js - 如何将 Alexa 请求处理程序引入另一个模块

转载 作者:太空宇宙 更新时间:2023-11-04 01:38:34 31 4
gpt4 key购买 nike

我正在寻找一个选项,如何将我的 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"
}
}

最佳答案

您没有返回请求。将您的 Test 函数更改为:

function Test(requestName, speechText){

var request = requestName+"Handler"
console.log("log: " +request)

return 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();
},
};
}

现在应该可以了!

关于node.js - 如何将 Alexa 请求处理程序引入另一个模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53722803/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com