【发布时间】:2017-08-11 12:28:04
【问题描述】:
背景:
在我的应用程序中,我有一个名为example.db 的本地数据库文件,由main.js 读取。项目结构和我的main.js 程序的一部分如下所示。
项目文件夹架构
main.js
const {
app,
BrowserWindow,
dialog,
Menu
} = require('electron')
const fs = require('fs')
const path = require('path')
const sqlite3 = require('sqlite3').verbose()
// load dataBase
let dbFile = 'app/db/example.db'
const db = new sqlite3.Database(dbFile)
Package.json
{
"name": "Example",
"version": "1.0.0",
"description": "",
"main": "./app/main.js",
"scripts": {
"postinstall": "install-app-deps",
"start": "electron ."
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"electron-builder": "^15.5.1",
"electron-prebuilt": "^1.4",
"electron-rebuild": "^1.5.7",
"electron-packager": "^8.1.0"
},
"dependencies": {
"jquery": "^3.1.1",
"sqlite3": "^3.1.8"
}
}
问题:
我可以通过运行npm start 成功加载数据库文件,但是,在我通过在Example 文件夹下运行以下命令行成功将程序打包到Windows 平台后:
node_modules/.bin/electron-packager --platform=win32 --arch=x64 .
我运行了.exe文件,但系统显示找不到我的数据库文件。
尝试过的方法:
我尝试使用process.resourscesPath 修改main.js 中的db 文件路径,如下所示:
// load dataBase
let dbFile = path.join(process.resourcesPath, '/app/db/example.db')
const db = new sqlite3.Database(dbFile)
但是,在这样做之后,我既不能通过运行.exe 加载数据库文件,也不能通过运行npm start 来加载。
问题:
我想知道存储数据库文件的正确方法是什么,以及如何在我的后端程序中写入它的路径(本例中为main.js)。谢谢。
【问题讨论】:
-
我认为您必须使用类似于在电子上加载 index.html 的路径。试试
__dirname
标签: sqlite electron electron-packager