Я создаю базовое приложение для контактов, чтобы узнать об IndexedDB и о том, как его использовать.Я прочитал руководство разработчика Mozilla, в котором упоминается об обновлении записей, но оно мне не подходит.Любая помощь будет принята с благодарностью.Спасибо
Обработчик успеха
let dbObject = window.indexedDB.open( 'contacts' );
Код для .onupgradeneeded
let peopleOS = db.createObjectStore( 'people', { keyPath: "name", autoIncrement: false } );
dbObject.onsuccess = e => {
// Retreive database
let db = event.target.result;
/*
* ---------------------------
* Add one person to database
* ---------------------------
*
* Create Transaction
* Select Object Store
* Add Person
*/
let trxn = db.transaction( ['people'], 'readwrite' );
let store = trxn.objectStore( 'people' );
store.add( { name: "Jedidiah", age: 20 } );
store.add( { name: "Mario", age: 127 } );
trxn.oncomplete = () => {
let trxn = db.transaction( ['people'], 'readwrite' );
let store = trxn.objectStore( 'people' );
// Update
let request = store.get("Jedidiah");
request.onsuccess = (event) => {
let data = event.target.result;
// Update name to "Ieti"
data.name = "Ieti";
let result = store.put( data );
result.onsuccess = () => {
alert("Value updated");
};
};
};
};
Я ожидаю, что запись со значением имени "Джедидия" будет изменена на "Иети"но вместо этого он создает новую запись в БД с теми же значениями, что и" Джедидия ", но с именем и keyPath, равным" Иети "