Javascript 无法使用 AWS SDK

Can't get a put to work with AWS SDK for Javascript

包含我的 Cognito 信息的 AWS 教程非常有用。但是,当我出于某种原因将它移植到另一个 HTML 文件时,put 不起作用。我可以使用相同的列表函数来查询我的帐户,这表明我的凭据有效(dynamodb 和 docClient 具有相同的权限?)。我一直在用头撞屏幕,但似乎无法在数据库中输入一行。这是我缺少 b/c 键值的 NoSQL 东西吗?

    var dynamodb = new AWS.DynamoDB();
    var docClient = new AWS.DynamoDB.DocumentClient();
    var my_form = {};

    function getFormData(log_date,notes){ 
        my_form.log_date=document.getElementById('log_date').value;
        my_form.notes=document.getElementById('parent_notes').value;
        console.log("I got form data of "+my_form.log_date+" and "+my_form.notes);
        /* some other fields */
        /* now call ur function by passing the above values */
    }

这部分不起作用:(

    function createItem() {
        getFormData();
        console.log("in createItem:"+my_form.log_date+" and "+my_form.notes);
        var params = {
            TableName :"Infant_Logs",
            Item:{
                "year": 2011,
                "title": "testing",
                "Date": "something",
                "Name": "Daniel",
                "Notes": "none"
                /*"info":{
                    "plot": "Nothing happens at all.",
                    "rating": 0
                }*/
            }
        };

        console.log("I am params: "+JSON.stringify(params));
        docClient.put(params, function(err, data) {
            if (err) {
                //console.log("Unable to add item: "+"\n"+JSON.stringify(err, undefined,2));
                document.getElementById('textarea').innerHTML = "Unable to add item: " + "\n" + JSON.stringify(err, undefined, 2);
            } else {
                //console.log("PutItem succeeded: "+"\n"+JSON.stringify(data,undefined,2));
                document.getElementById('textarea').innerHTML = "PutItem succeeded: " + "\n" + JSON.stringify(data, undefined, 2);
            }
        });
        console.log("The end of creation");
    }

这部分有效

    function listMovies() {
        var params = {};
        dynamodb.listTables(params, function(err, data) {
            if (err){
                console.log("I totally err");
                document.getElementById('textarea').innerHTML = "Unable to list tables: " + "\n" + JSON.stringify(err, undefined, 2);
            }
            else{
                console.log("I totally werk "+JSON.stringify(data,undefined,2));
                document.getElementById('textarea').innerHTML = "List of tables: " + "\n" + JSON.stringify(data, undefined, 2);
            }
        });
    }

我想我知道发生了什么。 NoSQL 格式需要一个字符串。 javascript 变量是对象(或其他东西)所以一旦我添加 .toString() 它开始弹出。我仍然没有看到成功日志,但至少它正在填充到数据库中。 耸肩