Почему моя функция сохранения 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
событие, попробуйте изменить номер версии.