Я сейчас пытаюсь запустить базу данных indexedDB. Однако я борюсь с некоторыми проблемами, связанными с методом put indexedDB. Хотя ключевой путь определен, а передаваемый JSONObject содержит значение, которое названо так же, как и указанный ключевой путь, метод put вызывает следующую ошибку:
Uncaught DOMException: Не удалось выполнить «put»в 'IDBObjectStore': оценка пути к ключу хранилища объектов не привела к значению.
Чтобы убедиться, что JSONObject действительно содержит значение, которое будет использоваться в качестве ключа, я веду журнал объекта. Вот как это выглядит:
{"ключ": 102019, "месяц": 10, "год": 2019, "расходы": [{"type": {"name": "Technology",«важность»: 70, «iconURL»: «./ Resources / Technology.png»}, «стоимость»: «1500», «имя»: «Macbook pro», «метка времени»: 1571696285911}], «бюджет»:0}
Код, который используется для хранения данных, следующий:
function callbackSaveSpendingMonth(database, spendingMonth) {
let userName = defaultUserName;
let transaction = database.transaction(userName, "readwrite");
let objectStore = transaction.objectStore(userName, { keyPath: 'key' });
let JSONspendingMonth = JSON.stringify(spendingMonth);
console.log(JSONspendingMonth);
let request = objectStore.put(JSONspendingMonth);
request.onsuccess = function (event) {
console.log("The month " + spendingMonth.getMonth() + "/" + spendingMonth.getYear() + " has been saved successfully!");
}
transaction.oncomplete = function (event) {
console.log("A connection to indexedDB has successfully been established!");
}
}