Node.js 获得';未定义';槽内值(Alexa使用nodejs lambda)

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

我将向函数传递两个插槽。我正在发送以下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 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);