Node.js 如何使用nodeJS在Aws DynamoDB中进行更新查询
我需要更新DynamoDB的一项,这是我的代码Node.js 如何使用nodeJS在Aws DynamoDB中进行更新查询,node.js,amazon-web-services,amazon-dynamodb,Node.js,Amazon Web Services,Amazon Dynamodb,我需要更新DynamoDB的一项,这是我的代码 const Aws = require('aws-sdk'); const endPoint= 'http://dynamodb.us-east-2.amazonaws.com'; const IAm_user_Key=process.env.IAM_USER_KEY; const IAm_user_Secret=process.env.IAM_USER_SECRET; Aws.config.update({ accessKeyId:IAm_us
const Aws = require('aws-sdk');
const endPoint= 'http://dynamodb.us-east-2.amazonaws.com';
const IAm_user_Key=process.env.IAM_USER_KEY;
const IAm_user_Secret=process.env.IAM_USER_SECRET;
Aws.config.update({ accessKeyId:IAm_user_Key,secretAccessKey:IAm_user_Secret,region:'us-east-2',endpoint:endPoint });
var docClient = new Aws.DynamoDB.DocumentClient();
var table = "cards";
var params={
TableName:table,
key:{ "cardid":clientData.data.cardid},
AttributeValue:{"data":clientData.data}
}
docClient.update(params, function(err, data) {
if (err) {
console.error("Unable to add item. Error JSON:", JSON.stringify(err, null, 2));
} else {
console.log("Added item:", JSON.stringify(data, null, 2));
}
})
在这里运行此代码时,我遇到了一些问题,这是我的错误
无法更新项目。错误JSON:{“消息”:“参数中缺少必需的密钥”“key”, “代码”:“缺少所需参数”,
“时间”:“2019-07-20T07:47:06.490Z” }
但是你可以看到我在params中有Key object,但仍在努力解决这个问题。我读了太多文档,但有一个愚蠢的错误,我发现这只是打字错误,params中的“Key”应该是大写的“Key”K,这是有效的。问题在于Key, 您需要使用主键来查找要在表中更新的行,如SQL,如主键。在DynamoDB中 主键=PK+SK 例如,如果您的客户: PK='Cardd'和SK='name'
如果要放置,应使用docClient.update而不是docClient.put。有关更多信息,请参阅。看起来您正在将更新参数传递给put方法。@Armin抱歉,我犯了错误,我编辑了我需要docClient.update而不是put的问题。我犯了同样的错误:我有同样的问题,但我的密钥在caps中:(
var params={
TableName:table,
Key:{ "cardid":clientData.data.cardid, 'name': req.body.name},
AttributeValue:{"data":clientData.data}
}