DynamoDB DeleteItem, видимо, не работает - ошибка не выдается - PullRequest
0 голосов
/ 07 сентября 2018

Я использую put и get без проблем, но когда дело доходит до удаления, ничего не происходит. Вот мой код:

async function resetUserIdDB(userId) {
  let params = {
    TableName: 'TableName',
    "Key": {
      "userId": {
        "S": userId.toString()
      }
    }
  };
  try {
    const dbResponse = await ddb.deleteItem(params).promise();
    console.log(`dbresponse has params of ${JSON.stringify(params)} and response of ${JSON.stringify(dbResponse)}`);
    if (dbResponse.Item) {
      console.log(`deleted row with userId of ${userId}`);
      return (dbResponse);
    }
  } catch (err) {
      console.log(`user reset failed with ${err}`);
    throw new Error(`failed to reset because of ${err}`);
  }
}

Все параметры выглядят нормально, но я просто получаю пустой ответ, без ошибок, но и без удаления. Я использую тот же .promise () для всех моих других действий DynamodB.

Есть идеи?

1 Ответ

0 голосов
/ 09 сентября 2018

Когда вы удаляете элемент в Dynamodb и ничего не происходит, это означает, что ключ не найден, поэтому дважды проверьте ваш ключ.

Таблица существует, в противном случае вы бы ошиблись, сказав

com.amazonaws.services.dynamodb.model.ResourceNotFoundException: Запрашиваемый ресурс не найден (Сервис: AmazonDynamoDB; Код состояния: 400; Код ошибки: ResourceNotFoundException; Запросить идентификатор

Например, чтобы удалить в таблице: TABLEXAMPLE ключ: {id: "client", sortingKey: "TTN-BPLAN-7129-6114"}

проверить, что идентификатор существует и правильный, а также ключ сортировки существует и правильный

...