Node.js 如果代码

Node.js 如果代码,node.js,aws-lambda,mqtt,Node.js,Aws Lambda,Mqtt,启动会话的执行结果为 “版本”:“1.0”,“sessionAttributes”:{},“回复”:{ “输出语音”:{ “类型”:“纯文本”, “文本”:“文本1” 但是当我在json文件中写入意图名称时 执行结果是 “errorMessage”:“异常:无效意图” 我的问题是为什么iot.publish功能只在启动请求中起作用 并且在意图请求中不起作用 有什么解释吗???iot.publish()似乎没有被调用,它是event.request.intent.name==“intent”计算为

启动会话的执行结果为

“版本”:“1.0”,“sessionAttributes”:{},“回复”:{ “输出语音”:{ “类型”:“纯文本”, “文本”:“文本1”

但是当我在json文件中写入意图名称时 执行结果是

“errorMessage”:“异常:无效意图”

我的问题是为什么iot.publish功能只在启动请求中起作用 并且在意图请求中不起作用


有什么解释吗???

iot.publish()
似乎没有被调用,它是
event.request.intent.name==“intent”
计算为
false
调用它是因为intent名称不是intent,但我把它放在这里是因为我不想透露intent名称
iot.publish()
似乎没有被调用,是
event.request.intent.name==“intent”
计算结果为
false
调用它是因为intent名称不是intent,但我把它放在这里是因为我不想透露intent名称
var AWS = require('aws-sdk');
    var iotdata = new AWS.IotData({
        endpoint: 'endpoint'
    });
    exports.handler = function (event, context) {
        var params = {
        topic: 'topic',
        payload: 'payload',
        qos: 0
        };
        try {
            console.log("event.session.application.applicationId=" + event.session.application.applicationId);
            if (event.session.new) {
               console.log("NEW SESSION");
            }
            switch (event.request.type){ 
                case "LaunchRequest": 
                console.log(`LAUNCH REQUEST`);
                iotdata.publish(params, function(err, data){
                    if(err){
                        console.log(err);
                    }
                    else{
                        console.log("!!!!!!!!");
                            context.succeed(
                                generateResponse(
                                    buildSpeechletResponse("Text1", true),
                                    {}
                            ));
                    }   
                });
                break;

            case "IntentRequest":
               console.log(`INTENT REQUEST`);
                if (event.request.intent.name==="Intent"){
                var number2 = event.request.intent.slots.Number.value;
                NumberS = NumberSwitch(number2);
                payLoad = 'payload';
                params={
                    topic: 'topic',
                    payload: payLoad,
                    qos: 0
                };
                iotdata.publish(params, function(err, data){
                    if(err){
                        console.log(err);
                    }
                    else{
                        console.log("success");
                            context.succeed(
                                generateResponse(
                                    buildSpeechletResponse("Text2", true),
                                    {}
                            ));
                    }   
                });
            }else{throw "Invalid intent";}  
            break;

            case "SessionEndedRequest":
            console.log(`SESSION ENDED REQUEST`);
            break;

            default:
            context.fail(`INVALID REQUEST TYPE: ${event.request.type}`);
        }

    } catch (e) {
        context.fail("Exception: " + e);
    }
};
"shouldEndSession": true