如何使用 Electron 访问生产中的 sqlite3 数据库文件?

问题描述 投票:0回答:3

我有一个 electron 应用程序,我将它与

create-electron-app
一起使用。

我的电子主进程文件位于 public 文件夹中,我的 sqlite3 数据库也是如此。

当我在开发中引用数据库时,它按预期工作,因为我可以访问路径:

F:\www\project-name\public\api\db\demodb01

但在生产中该路径不存在(我想说隐藏在app.asar后面):

C:\Users\userName\AppData\Local\Programs\project-name\resources\app.asar\build\api\db\demodb01

如何在生产中定位数据库文件?

javascript node.js sqlite electron create-react-app
3个回答
4
投票

在应用程序中存储文件时,您应该使用 app.getPath('userData') 将它们存储在应用程序范围之外,从而使它们保持持久状态。

nedb 是 Electron 应用程序的常见选择,因为它是用 JavaScript 编写的轻量级数据库。如果您还没有检查过,我建议您检查一下。


0
投票

我在 Electron 应用程序中将 Sequelize 与 SQLite 结合使用,并将数据库文件保存在 userData 目录中。这是我正在使用的代码:

const { Sequelize } = require("sequelize");
const path = require("path");
const { app } = require("electron");

const sequelize = new Sequelize({
  dialect: "sqlite",
  storage: path.join(app.getPath("userData"), "database.sqlite"),
});

module.exports = {
  sequelize,
};

在上面的代码中,我使用 path.join(app.getPath("userData"), "database.sqlite") 指定数据库存储路径。构建我的应用程序后,我可以在 Windows 上的以下位置找到数据库文件:

C:\Users\<YourUserName>\AppData\Roaming\<YourAppName>\database.sqlite

-1
投票

您还有另一种解决方案。请按照以下步骤操作:

  1. 首次安装electron-is-dev

  2. 将这些代码添加到 main.js 文件中: main.js

  3. 现在在 package.json 中进行以下标记更改: package.json

谢谢你。

© www.soinside.com 2019 - 2024. All rights reserved.