Почему моя функция сохранения IndexedDB не работает?

Я делаю игру с веб-расширением Edge, игра готова, и теперь мне нужно заняться хранилищем. Я буду использовать IndexedDB, потому что WebSQL скоро станет недоступен. Я сделал функцию сохранения, но получил ошибку.

Это функция, которая вызывает функцию сохранения каждые 2 секунды:

      function init() {
  const data = { 
  money: money, 
  monkey: monkey 
  };
  setInterval(function() {
  saveGameData("myDatabase", "store", data); }, 2000);
}

А это функция сохранения:

      function saveGameData(databaseName, storeName, data) {
  // Open the database
  const request = indexedDB.open(databaseName, 1);
  
  request.onerror = function() {
    console.error("Database error:", request.error);
  };
  
  request.onsuccess = function() {
    const db = request.result;
    
    // Start a transaction and get the object store
    const transaction = db.transaction(storeName, "readwrite");
    const objectStore = transaction.objectStore(storeName);
    
    // Save the data to the object store
    const saveRequest = objectStore.put(data);
    
    saveRequest.onerror = function() {
      console.error("Error saving data:", saveRequest.error);
    };
    
    saveRequest.onsuccess = function() {
      console.log("Data saved successfully");
    };
  };
}

И это ошибка, которую я получаю:

Uncaught NotFoundError: не удалось выполнить «транзакцию» в «IDBDatabase»: одно из указанных хранилищ объектов не найдено.

Ошибка из этой строки:const transaction = db.transaction(storeName, "readwrite");

1 ответ

Похоже, вы пропустили это событие. Для получения дополнительной информации вы можете обратиться к этому документу .

Если вы уже позвонилиonupgradeneededсобытие, попробуйте изменить номер версии.

Другие вопросы по тегам