Почему я получаю сообщение об ошибке при помещении JSONObject в базу данных indexedDB? - PullRequest
0 голосов
/ 22 октября 2019

Я сейчас пытаюсь запустить базу данных 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!");
    }
}
...