node.js无法读取“的属性”;新";
我现在正试图用我的Alexa技能解决一个问题。我观看和阅读了很多教程,并试图搜索它,但我总是从Node.js收到一条神秘的错误消息。。。 我只是尝试发送一个http请求,所以没什么复杂的 我的代码如下所示:node.js无法读取“的属性”;新";,node.js,alexa-skills-kit,Node.js,Alexa Skills Kit,我现在正试图用我的Alexa技能解决一个问题。我观看和阅读了很多教程,并试图搜索它,但我总是从Node.js收到一条神秘的错误消息。。。 我只是尝试发送一个http请求,所以没什么复杂的 我的代码如下所示: var https = require('https') exports.handler = (event, context) => { try { if (event.session.new) { console.log("NEW SESSION")
var https = require('https')
exports.handler = (event, context) => {
try {
if (event.session.new) {
console.log("NEW SESSION")
}
switch (event.request.type) {
case "LaunchRequest":
console.log(`LAUNCH REQUEST`)
context.succeed(
generateResponse(
buildSpeechletResponse("Willkommen bei Taasker", true),
{}
)
)
break;
case "IntentRequest":
console.log(`INTENT REQUEST`)
switch(event.request.intent.name) {
case "taskernightlighton":
var endpoint = ""
var body = ""
http.request("https://autoremotejoaomgcd.appspot.com/sendmessage?key=xxxxxxxxxxxxx&message=nightlighton")
context.succeed(
generateResponse(
buildSpeechletResponse(`Licht wird von Taasker eingeschaltet`, true),
{}
)
)
break;
case "taskernightlightoff":
http.request("https://autoremotejoaomgcd.appspot.com/sendmessage?key=xxxxxxxxxx&message=nightlightoff")
context.succeed(
generateResponse(
buildSpeechletResponse(`Licht wird von Taasker ausgeschaltet`, true),
{}
)
)
break;
default:
throw "Invalid intent"
}
break;
case "SessionEndedRequest":
console.log(`SESSION ENDED REQUEST`)
break;
default:
context.fail(`INVALID REQUEST TYPE: ${event.request.type}`)
}
} catch(error) { context.fail(`Exception: ${error}`) }
}
// Helpers
buildSpeechletResponse = (outputText, shouldEndSession) => {
return {
outputSpeech: {
type: "PlainText",
text: outputText
},
shouldEndSession: shouldEndSession
}
}
generateResponse = (speechletResponse, sessionAttributes) => {
return {
version: "1.0",
sessionAttributes: sessionAttributes,
response: speechletResponse
}
}
我总是收到以下错误:
{
"errorMessage": "Exception: TypeError: Cannot read property 'new' of undefined"
}
有人能给我一个提示,我的javascript语法有什么问题吗?我找不到解释此http请求的来源?请帮助…我可以告诉您错误消息的含义。错误消息一点也不神秘
"Exception: TypeError: Cannot read property 'new' of undefined"
显然,您有一个具有属性new
的对象。因此,没有阅读您的代码,我现在知道您有一个类似于myObject.new
的对象。错误是说myObject
未定义,因此无法访问new
中的值,因为没有值。解释器是这样看的:
var https = require('https')
exports.handler = (event, context) => {
try {
if (event.session.new) {
console.log("NEW SESSION")
}
switch (event.request.type) {
case "LaunchRequest":
console.log(`LAUNCH REQUEST`)
context.succeed(
generateResponse(
buildSpeechletResponse("Willkommen bei Taasker", true),
{}
)
)
break;
case "IntentRequest":
console.log(`INTENT REQUEST`)
switch(event.request.intent.name) {
case "taskernightlighton":
var endpoint = ""
var body = ""
http.request("https://autoremotejoaomgcd.appspot.com/sendmessage?key=xxxxxxxxxxxxx&message=nightlighton")
context.succeed(
generateResponse(
buildSpeechletResponse(`Licht wird von Taasker eingeschaltet`, true),
{}
)
)
break;
case "taskernightlightoff":
http.request("https://autoremotejoaomgcd.appspot.com/sendmessage?key=xxxxxxxxxx&message=nightlightoff")
context.succeed(
generateResponse(
buildSpeechletResponse(`Licht wird von Taasker ausgeschaltet`, true),
{}
)
)
break;
default:
throw "Invalid intent"
}
break;
case "SessionEndedRequest":
console.log(`SESSION ENDED REQUEST`)
break;
default:
context.fail(`INVALID REQUEST TYPE: ${event.request.type}`)
}
} catch(error) { context.fail(`Exception: ${error}`) }
}
// Helpers
buildSpeechletResponse = (outputText, shouldEndSession) => {
return {
outputSpeech: {
type: "PlainText",
text: outputText
},
shouldEndSession: shouldEndSession
}
}
generateResponse = (speechletResponse, sessionAttributes) => {
return {
version: "1.0",
sessionAttributes: sessionAttributes,
response: speechletResponse
}
}
var myObject=未定义
你要做的是:
myObject.new
,它基本上被运行时视为未定义。new
,这是不可能的
让我们变得实际点
当我在你的程序中按CTRL+F时,我发现你有:
if(event.session.new){
因此,我的猜测如下:事件
未定义,或者会话
未定义。这就产生了错误,引发了以下问题:您如何调用导出的处理程序
?您可能有问题
另一个问题是:console.log是否记录“新会话”
?我可以告诉您错误消息的含义。错误消息一点也不神秘
"Exception: TypeError: Cannot read property 'new' of undefined"
显然,您有一个对象具有属性new
。因此,如果不阅读您的代码,我现在知道您有一个类似myObject.new
的对象。错误是myObject
未定义,因此它无法访问new
中的值,因为没有值埃特是这样看的:
var https = require('https')
exports.handler = (event, context) => {
try {
if (event.session.new) {
console.log("NEW SESSION")
}
switch (event.request.type) {
case "LaunchRequest":
console.log(`LAUNCH REQUEST`)
context.succeed(
generateResponse(
buildSpeechletResponse("Willkommen bei Taasker", true),
{}
)
)
break;
case "IntentRequest":
console.log(`INTENT REQUEST`)
switch(event.request.intent.name) {
case "taskernightlighton":
var endpoint = ""
var body = ""
http.request("https://autoremotejoaomgcd.appspot.com/sendmessage?key=xxxxxxxxxxxxx&message=nightlighton")
context.succeed(
generateResponse(
buildSpeechletResponse(`Licht wird von Taasker eingeschaltet`, true),
{}
)
)
break;
case "taskernightlightoff":
http.request("https://autoremotejoaomgcd.appspot.com/sendmessage?key=xxxxxxxxxx&message=nightlightoff")
context.succeed(
generateResponse(
buildSpeechletResponse(`Licht wird von Taasker ausgeschaltet`, true),
{}
)
)
break;
default:
throw "Invalid intent"
}
break;
case "SessionEndedRequest":
console.log(`SESSION ENDED REQUEST`)
break;
default:
context.fail(`INVALID REQUEST TYPE: ${event.request.type}`)
}
} catch(error) { context.fail(`Exception: ${error}`) }
}
// Helpers
buildSpeechletResponse = (outputText, shouldEndSession) => {
return {
outputSpeech: {
type: "PlainText",
text: outputText
},
shouldEndSession: shouldEndSession
}
}
generateResponse = (speechletResponse, sessionAttributes) => {
return {
version: "1.0",
sessionAttributes: sessionAttributes,
response: speechletResponse
}
}
var myObject=未定义
你要做的是:
myObject.new
,它基本上被运行时视为未定义。new
,这是不可能的
让我们变得实际点
当我在你的程序中按CTRL+F时,我发现你有:
if(event.session.new){
因此,我的猜测如下:事件
未定义,或者会话
未定义。这就产生了错误,引发了以下问题:您如何调用导出的处理程序
?您可能有问题
另一个问题是:console.log
是否记录“新会话”