我在创建 objectStore 时已成功将以下内容添加到它:
{ name: "John Doe", age: 21 }
我使用了以下选项:
{ keyPath: "id", autoIncrement: true }
我能够找到该记录,它显示id = 1
. 但是,当我在下面运行此命令时,它会引发错误:
var store = db.transaction( [ "employees" ], "readwrite" ).objectStore( "employees" );
var request = store.put( { name: "John Doe", age: 32 }, 1 );
这抛出:
DataError: DOM IDBDatabase Exception 0
有谁知道出了什么问题?我是否错误地指定了密钥?
更新
IndexedDB 规范指出应该允许第二个参数:
interface IDBObjectStore {
...
IDBRequest put (any value, optional any key);
...
};
但是,它不起作用,但这确实起作用:
store.put( { name: "John Doe", age: 32, id: 1 } );
这是一个需要这样做的错误。除非我仍然在做错事。