Ошибка при помещении элемента в DynamoDB: «Преобразование круговой структуры в JSON» - PullRequest
0 голосов
/ 09 сентября 2018

Я получаю эту ошибку в моем умении Alexa

{ "errorMessage": "Преобразование круговой структуры в JSON", "errorType": "TypeError", "трассировки стека": [ "JSON.stringify ()", "exports.handler (/var/task/index.js:195:35)", «» ] }

когда я пытаюсь поместить элемент в базу данных DynamoDB, вот мой код:

const awsSDK = require('aws-sdk');
const Alexa = require('ask-sdk');
const promisify = require('es6-promisify');
awsSDK.config.update({region: 'us-west-2'});
var ddb = new awsSDK.DynamoDB.DocumentClient();

и

var params = {
TableName:"habits",
Item:{
  "year": "year",
  "title": "title",
  "info":{
      "plot": "Nothing happens at all.",
      "rating": 0
  }
 }
};

и

return ddb.put(params, function(err, data) {
  if (err) {
    console.log("Error", err);
    return handlerInput.responseBuilder
    .speak('error')
    .withSimpleCard('Sure', speechText)
    .getResponse();
  } else {
    console.log("Success", data);
    return handlerInput.responseBuilder
    .speak(speechText)
    .withSimpleCard('Sure', speechText)
    .getResponse();
  }
});

1 Ответ

0 голосов
/ 11 сентября 2018

Судя по сообщению об ошибке, вы пытаетесь отправить объект, имеющий круговую структуру. Таким образом, решается проблема, заключающаяся в том, что структуры JavaScript, которые включают циклические ссылки, не могут быть сериализованы с простым JSON.stringify .

Я бы глубоко посмотрел на твой объект.

В качестве альтернативы вы можете попробовать BotTalk . Вы можете создавать довольно сложные Alexa Skills с простым языком разметки. И база данных включена бесплатно.

...