DOM IDBDatabase在indexedDB中添加数据时的异常5

时间:2012-05-09 03:44:45

标签: indexeddb

我的对象结构是这样的:

var test={
        "id":"A",
        "ChanName":"Discovery",
        "LCN":10
        };

这是创建对象存储的片段:

var objectStore = db.createObjectStore('Dat', { keyPath:'test.id',autoIncrement: false});

var trans = db.transaction(["Dat"], webkitIDBTransaction.READ_WRITE);
         var store = trans.objectStore("Dat");
         var request=store.put(test);

当我尝试添加测试对象时,我得到了这个异常DATA_ERR:DOM IDBDatabase异常5.请问您能在这里找出错误的建议吗?我正在使用chrome 18来测试它。对象存储的创建很好,但无法添加数据

1 个答案:

答案 0 :(得分:3)

当“提供给操作的数据不符合要求”时,抛出IndexedDB异常5。这通常是因为您添加了索引,例如,在提供缺少该属性的对象时。

此处,您的test对象看起来与您指定的关键路径不匹配。

如果您希望将id作为关键字,createObjectStore必须是这样的:

var objectStore = db.createObjectStore('Dat', { keyPath:'id',autoIncrement: false});

作为另一个示例,或者,使用您的keyPath,您的test对象需要看起来像这样不会抛出此错误:

var test={
 test: { "id":"A" },
 ChanName:"Discovery",
 LCN:10
};