Amazon dynamodb 如何使用AWS DynamoDb DocumentClient将项目写入DynamoDb?

Amazon dynamodb 如何使用AWS DynamoDb DocumentClient将项目写入DynamoDb?,amazon-dynamodb,aws-sdk,amazon-javascript-sdk,Amazon Dynamodb,Aws Sdk,Amazon Javascript Sdk,我在使用AWS DynamoDb JS SDK v2.4.9时遇到问题。我想使用DocumentClient类而不是较低级别的DynamoDb类,但无法使其工作 这项工作: function testPutItem( callback ) { var tableName = 'todos'; var params = { TableName: tableName, Item: { user_id: { S : userI

我在使用AWS DynamoDb JS SDK v2.4.9时遇到问题。我想使用DocumentClient类而不是较低级别的DynamoDb类,但无法使其工作

这项工作:

function testPutItem( callback ) {

    var tableName = 'todos';

    var params = {
        TableName: tableName,
        Item: {
            user_id: { S : userId },
            id: { N : msFromEpoch },        // ms from epoch
            title: { S : makeRandomStringWithLength(16) },
            completed: { BOOL: false }
        }
    };

    var dynamodb = new AWS.DynamoDB();
    dynamodb.putItem(params, function(err, data) {
      if (err) console.log(err, err.stack); // an error occurred
      else {
            console.log(data);           // successful response
            if (callback) callback(data);
        }
    });
}
这不起作用,并使错误
InvalidParameterType:Expected params.Item[属性]成为每个属性的结构
——就好像DocumentClient期望与DynamoDb相同的输入:

function testPutItem( callback ) {

    var tableName = 'todos';

    var params = {
        TableName: tableName,
        Item: {
            user_id: userId,
            id: msFromEpoch,
            title: makeRandomStringWithLength(16),
            completed: false
        }
    };
    console.log(params);

    var docClient = new AWS.DynamoDB.DocumentClient({region: 'us-east-1'});
    docClient.put(params, function(err, data) {
      if (err) console.log(err, err.stack); // an error occurred
      else {
            console.log(data);           // successful response
            if (callback) callback(data);
        }
    });
}

有人知道我做错了什么吗?

我以前也有同样的问题

请先尝试使用简单对象,因为这是由于属性中的某些特殊字符造成的,请参见我的示例:

这会产生错误

InvalidParameterType:参数项[属性]应为结构


我刚刚试过你的例子,它对我很有效;我使用dynamodb local进行测试,并创建了一个名为
todos
的表;并成功发布了一个项目。谢谢!更进一步,但也更混乱,因为我几乎没有其他相关的代码进行调试。除了主aws sdk-.min.js文件之外,我还应该包括其他js文件来获得DocumentClient的所有功能吗?如果有帮助的话;我使用的是2.4.11;我没想到要检查版本。你能更新到那个版本吗?似乎是npm的最新版本。
 var Item = {
  domain: "knewtone.com",
  categorie: "<some HTML Object stuff>",
  title: "<some HTML stuff>",
  html: "<some HTML stuff>""
};
var Item = {
  domain: "knewtone.com",
  categorie: $(categorie).html(),
  title: $(title).html(),
  html: $(html).html()
};