Electron JS + SQLite 数据库

Posted

技术标签:

【中文标题】Electron JS + SQLite 数据库【英文标题】:Electron JS + SQLite database 【发布时间】:2017-08-27 00:31:53 【问题描述】:

我有一个使用本地 sqlite 数据库的 Electron JS 应用程序。 sqlite 数据库是项目文件夹结构(lib 文件夹)中的一个文件。该应用程序在测试期间运行良好,但是当我在 Mac 上构建应用程序并启动 .dmg 文件时,它收到一条错误消息,提示它找不到 .sqlite 数据库。

有没有办法让它与我项目中的 sqlite 数据库一起使用?或者有没有更简单的方法在 Electron 应用中进行本地存储?

谢谢。

【问题讨论】:

【参考方案1】:

我发现这可以通过将 SQLite 文件写入本地用户目录来完成:

const electron = require('electron');
const path = require('path');
const userDir = (electron.app || electron.remote.app).getPath('userData');
const dbPath = path.join(userDir, 'mydb.sqlite');

【讨论】:

【参考方案2】:

您必须在package.json 中添加buildResources extraResources 才能在生产中获取SQLite 文件。

"build": 
  "appId": "com.app.app",
  "productName": "Electron APP",
  "files": [
    "build/**/*"
  ],
  "directories": 
    "buildResources": "build"
  ,  
  "extraResources": [
    
      "from": "./db/",
      "to": "db/",
      "filter": [
        "**/*"
      ]
    
  ],
,

【讨论】:

以上是关于Electron JS + SQLite 数据库的主要内容,如果未能解决你的问题,请参考以下文章

electron添加SQLite数据库

electron添加SQLite数据库

在生产模式 Electron + Angular 下找不到 sqlite 文件

AngularJS / Sqlite / Electron - 未知提供者:$dbServiceProvider

electron安装操作sqlite3数据库(完整版)

如何使 SQLite 与 Angular 4+、Electron 和 NodeJS 一起工作