Node.js 获得';未定义';槽内值(Alexa使用nodejs lambda)
我将向函数传递两个插槽。我正在发送以下xml 下面是请求XML。 但是,当代码运行时,即使插槽在那里,我也无法定义它们。 以下是代码Node.js 获得';未定义';槽内值(Alexa使用nodejs lambda),node.js,alexa-skills-kit,Node.js,Alexa Skills Kit,我将向函数传递两个插槽。我正在发送以下xml 下面是请求XML。 但是,当代码运行时,即使插槽在那里,我也无法定义它们。 以下是代码 var intent = this.event.request.intent; console.log('slots are -->'); console.log(intent.slots); var shloka = this.event.request.intent.slots.shloka.value; var cha
var intent = this.event.request.intent;
console.log('slots are -->');
console.log(intent.slots);
var shloka = this.event.request.intent.slots.shloka.value;
var chapter = this.event.request.intent.slots.chapter.value;
console.log('chapter:' + chapter + ' shloka:' + shloka);
这是控制台日志
... 插槽-->
... {章节:'4',shloka:'4'}
... 第章:未定义的shloka:未定义
我不知道如何解决这个问题。首先,您不必使用
value
来访问shloka
和章节的值。其次,如果变量(第1行-var-intent=this.event.request.intent;
)中有intent,那么为什么要使用this.event.request.intent
两次访问它呢
// Use this
var shloka = intent.slots.shloka;
var chapter = intent.slots.chapter;
// Instead of this
var shloka = this.event.request.intent.slots.shloka.value;
var chapter = this.event.request.intent.slots.chapter.value;
这应该如预期的那样起作用:
var intent = this.event.request.intent;
console.log('slots are -->');
console.log(intent.slots);
var shloka = intent.slots.shloka;
var chapter = intent.slots.chapter;
console.log('chapter:' + chapter + ' shloka:' + shloka);
谢谢,成功了。所有amazon示例都有.value来检索插槽。我想知道为什么它不起作用。无论如何,谢谢你。
var intent = this.event.request.intent;
console.log('slots are -->');
console.log(intent.slots);
var shloka = intent.slots.shloka;
var chapter = intent.slots.chapter;
console.log('chapter:' + chapter + ' shloka:' + shloka);