TypeError: Невозможно прочитать свойство 'состояние' из неопределенного при вызове состояния - PullRequest
0 голосов
/ 18 мая 2018

Я пытаюсь использовать Alexa для поиска DynamoDB для соответствующего состояния в определенные даты и время.

В настоящее время я получаю следующую ошибку в облачных часах

TypeError: Cannot read property 'state' of undefined

Вотполная ошибка

2018-05-18T09:25:50.175Z	73ac1779-5a7d-11e8-85af-e35ca28db9ce	TypeError: Cannot read property 'state' of undefined
at Response.<anonymous> (/var/task/index.js:40:28)
at Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:364:18)
at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:105:20)
at Request.emit (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:77:10)
at Request.emit (/var/runtime/node_modules/aws-sdk/lib/request.js:683:14)
at Request.transition (/var/runtime/node_modules/aws-sdk/lib/request.js:22:10)
at AcceptorStateMachine.runTo (/var/runtime/node_modules/aws-sdk/lib/state_machine.js:14:12)
at /var/runtime/node_modules/aws-sdk/lib/state_machine.js:26:10
at Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:38:9)
at Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:685:12)

Я также получаю следующее

2018-05-18T09: 25: 50.174Z 73ac1779-5a7d-11e8-85af-e35ca28db9ce элемент загруженных данных: не определено

Может кто-нибудь помочь мне понять это?

Вот строки, к которым относится ошибка.

  dbClient.query(params, function (err, data) {
    if (err) {
       // failed to read from table for some reason..
       console.log('failed to load data item:\n' + JSON.stringify(err, null, 2));
       // let skill tell the user that it couldn't find the data 
       sendResponse(context, callback, {
          output: "the data could not be loaded from your database",
          endSession: false
       });
    } else {
       let dataItem = data.Items[0];           
       console.log('loaded data item:\n' + JSON.stringify(dataItem, null, 2));
       // assuming the item has an attribute called "state"..
       sendResponse(context, callback, {
          output: dataItem.state,
          endSession: false
       });
    }
  });
};


function sendResponse(context, callback, responseOptions) {
  if(typeof callback === 'undefined') {
    context.succeed(buildResponse(responseOptions));
  } else {
    callback(null, buildResponse(responseOptions));
  }
}

function buildResponse(options) {
  var alexaResponse = {
    version: "1.0",
    response: {
      outputSpeech: {
        "type": "SSML",
        "ssml": `<speak><prosody rate="slow">${options.output}</prosody></speak>`
      },
      shouldEndSession: options.endSession
    }
  };
  if (options.repromptText) {
    alexaResponse.response.reprompt = {
      outputSpeech: {
        "type": "SSML",
        "ssml": `<speak><prosody rate="slow">${options.reprompt}</prosody></speak>`
      }
    };
  }
  return alexaResponse;
}

ОБНОВЛЕНИЕ

Я также обнаружил эту ошибку в облачных часах

2018-05-18T14:46:37.928Z	3158fac8-ea71-4305-a2be-dda782b58531	Unexpected error occurred in the skill handler! TypeError: Cannot read property 'type' of undefined
at exports.handler (/var/task/index.js:81:17)

и в соответствии с запросом здесь ошибка с элементом загрузки

2018-05-18T14:46:45.592Z	48df3d5d-5aaa-11e8-aa8c-f3f6ecf5748a	loaded data item:
undefined
...