Node.js DynamoDB:无法更新节点js中的DynamoDB项
我是dynamoDB的新手,我正在尝试更新项目并将其发送到db,但我做不到,总是得到“提供的关键元素与模式不匹配” 这是dynamoDB的my serverless.yml代码Node.js DynamoDB:无法更新节点js中的DynamoDB项,node.js,amazon-dynamodb,Node.js,Amazon Dynamodb,我是dynamoDB的新手,我正在尝试更新项目并将其发送到db,但我做不到,总是得到“提供的关键元素与模式不匹配” 这是dynamoDB的my serverless.yml代码 resources: Resources: TodosDynamoDbTable: Type: 'AWS::DynamoDB::Table' DeletionPolicy: Retain Properties: AttributeDefinition
resources:
Resources:
TodosDynamoDbTable:
Type: 'AWS::DynamoDB::Table'
DeletionPolicy: Retain
Properties:
AttributeDefinitions:
-
AttributeName: id
AttributeType: S
-
AttributeName: in_organization_id
AttributeType: S
-
AttributeName: sp_customer_id
AttributeType: S
-
AttributeName: qb_customer_id
AttributeType: S
KeySchema:
-
AttributeName: id
KeyType: HASH
-
AttributeName: in_organization_id
KeyType: RANGE
-
AttributeName: sp_customer_id
KeyType: RANGE
-
AttributeName: qb_customer_id
KeyType: RANGE
ProvisionedThroughput:
ReadCapacityUnits: 1
WriteCapacityUnits: 1
TableName: 'insightly'
这是我的更新方法
/* Update Record in DB */
this.UpdateDB = (event) => {
return new Promise(async (resolve, reject) => {
try {
const data = event;
const params = {
TableName: process.env.TABLE_NAME,
Key: {
in_organization_id : data.in_organization_id
},
UpdateExpression: "set qb_customer_id = :qb_customer_id",
ExpressionAttributeValues:{
":qb_customer_id":data.qb_customer_id
},
ReturnValues:"UPDATED_NEW"}
const response=await dynamoDb.update(params).promise();
resolve(response);
} catch (err) {
reject(err.message);
}
});
};
像wise一样,我有getmethod来获取项目
/* Get/Check Org ID from DB */
this.checkOrgID = (OrgID) => {
return new Promise(async (resolve, reject) => {
try {
const params = {
TableName: process.env.TABLE_NAME,
Key: {in_organization_id :OrgID}
};
const response = await dynamoDb.get(params).promise();
resolve(response);
} catch (err) {
reject(err.message);
}
});
};
但它总是给我错误。请帮我找出解决办法。提前感谢。如果您正在使用AWS SDK for Javascript,您可以使用以下信息:
const document = {
document_id: "1",
name: "John",
lastname: "Snow"
}
其中document_id是我的密钥
return dynamodb
.put({ TableName: 'tableName', Item: document })
.promise();
你犯了什么错误?在哪一行?谢谢@Cristian Fernández,它起作用了