在 Quasar 中使用 Dexie 导出 IndexedDB 数据库

Posted

技术标签:

【中文标题】在 Quasar 中使用 Dexie 导出 IndexedDB 数据库【英文标题】:Export IndexedDB Database with Dexie in Quasar 【发布时间】:2021-05-20 18:49:48 【问题描述】:

我正在尝试使用 dexie-export-import 在我的 Quasar 项目中使用 Dexie 导出我的 IndexedDB 数据库。我是 Quasar 和 Dexie 的新手,所以请原谅我缺乏知识。

我的代码似乎正在运行,并且我的控制台中没有出现错误,但我也没有看到导出任何内容。我想知道是否正在进行导出,但我不知道它的去向?

我正在通过 Electron 运行 Quasar,因为这将是一个桌面应用程序。

我还想知道我可能必须触发从 Quasar 下载文件?我很感激任何帮助。我一直在网上搜索,但找不到我做错了什么。

这是一个代码sn-p:

import importDB, exportDB from "dexie-export-import"

try 
  const blob = await exportDB(myDB)
  console.log("         in try ")
  return blob
 catch (error) 
  console.error(' error: '+error);

【问题讨论】:

【参考方案1】:

您需要向用户展示您获得的 blob。一种方法(也是使用on this codepen example 的方法)是使用download-js 并将blob 传递给它的download() 函数。这将为用户触发文件内容的“下载”。

  const blob = await exportDB(myDB)
  download(blob, "dexie-export.json", "application/json");

【讨论】:

感谢您的回复。当我添加 download(...) 行时,我收到一条错误消息“ManageExportImport.vue?ad38:74 error: ReferenceError: download is not defined” 需要导入或包含download-js。

以上是关于在 Quasar 中使用 Dexie 导出 IndexedDB 数据库的主要内容,如果未能解决你的问题,请参考以下文章

有没有人将 Dexie 与 localbase 进行比较?

Dexie 不在生产版本中存储数据,但在开发版本中一切正常

有没有更好的方法可以使用 dexie 在 svelte 中编写此代码?

Dexie:如何跨多个浏览器引用一个 dexie db?

如何使用 dexie 在 indexedDB 中保存对象,其中 1 个字段是对象数组?

Dexie 中 Table.bulkPut 在 .then() 中返回啥?