IndexedDB Dexie中的获取数据函数返回未定义

mlnl4t2r  于 2022-12-09  发布在  IndexedDB
关注(0)|答案(1)|浏览(141)

我的功能很简单。创建表,批量放入数据,并根据索引检索对象。

const db = new Dexie('data');
const dataToInsert = [{id: "aaaa", name: "bbb"}]

function data() {
var exists = await Dexie.exists("data");
  if (!exists) {
    await db.version(1).stores({
      data: 'id,name'
    });
    await db.geo.bulkPut(dataToInsert);
  }
  var record = await db.geo.get("aaaa");
}

我可以看到所有内容都已插入。但GET函数返回:
Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'get')
甚至db.geo都是未定义的...知道为什么吗?

vfh0ocws

vfh0ocws1#

问题是您没有定义geo表模式,因此Dexie不知道它。
如果您指的是data模式而不是geo模式,则只需在模式定义中将data更改为geo即可修复

const db = new Dexie('data');
const dataToInsert = [{id: "aaaa", name: "bbb"}]

function data() {
  var exists = await Dexie.exists("data");
  if (!exists) {
    await db.version(1).stores({
      data: 'id,name'
    });
    await db.data.bulkPut(dataToInsert);
  }
  var record = await db.data.get("aaaa");
}

或者添加缺少的geo架构。

相关问题