从 aws-sdk/client-dynamodb 删除项目命令无法按预期工作

问题描述 投票:0回答:1

我一直在尝试从 DynamoDB 表中删除项目,但没有成功,也没有实际错误。 我的删除功能如下:

public async deleteToken(token: string) {
const input: DeleteItemCommandInput = {
  TableName: this.tableName,
  Key: {
    Token: {
      S: token,
    },
  },
};

// https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/deleteitemcommand.html
const command = new DeleteItemCommand(input);


//Send command to DDB
const response = await this.client.send(command);

console.log("response", response);

return response;

}

虽然在邮递员中我得到了成功代码,但实际上什么也没发生。该项目仍在表中。我已经检查过,我在输入中使用的令牌值是正确的。 奇怪的是,响应承诺永远不会解决,而且我没有收到错误。控制台日志如下“const response = wait this.client.send(command);”被忽略。

请问有什么想法吗?

aws-sdk-js
1个回答
0
投票

Token
字段是否充当 Dynamo 表中的二级索引 (GSI)?据我所知,您只能使用主操作来应用删除操作,因此如果
Token
是 GSI,我想说最简单的方法是分两步完成:

  1. 使用GSI索引查找该项目(通过
    Token
    查找)。
  2. 使用返回的项目中的主索引将其删除。
© www.soinside.com 2019 - 2024. All rights reserved.