将项目放入DynamoDB中时出错:“将圆形结构转换为JSON”

时间:2018-09-09 19:42:16

标签: aws-lambda amazon-dynamodb alexa

我的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 :(得分:0)

根据错误消息判断,您正在尝试提交具有圆形结构的对象。因此遇到了JavaScript structures that include circular references can't be serialized with a plain JSON.stringify的问题。

我会深入研究您的对象。

或者,您可以尝试BotTalk。您可以使用简单的标记语言来创建非常复杂的Alexa技能。免费提供AND数据库。