背景梱包後ローカルDBファイルを見つけることができません。私のアプリでは を、私はmain.js
によって読み取られexample.db
という名前のローカルDBファイルを、持っています。プロジェクトの構成と私のmain.js
プログラムの一部を以下に示します。電子・パッケージャは:
Projectフォルダアーキテクチャ
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"
}
}
の
問題:
私は成功しExample
フォルダの下に次のコマンドラインを実行して、Windowsプラットフォームに私のプログラムを梱包後、しかし、npm start
を実行して成功したDBファイルを読み込むことができます。
node_modules/.bin/electron-packager --platform=win32 --arch=x64 .
.exe
ファイルを実行しましたが、データベースファイルが見つからないことがシステムによって示されました。私はどちらも、
// load dataBase
let dbFile = path.join(process.resourcesPath, '/app/db/example.db')
const db = new sqlite3.Database(dbFile)
しかし、それをやった後:私は、次のようprocess.resourscesPath
を使用してmain.js
内のdbファイルパスを変更しようとした
:メソッドを試した
.exe
からDBファイルをロードすることはできません。また、npm start
を実行してDBファイルをロードすることはできません。
質問:
私は正しい私のデータベースファイルを格納するための方法、およびどのように私のバックエンドプログラム(この例ではmain.js
)でのパスを書くことであるものにしたいです。ありがとう。
私はindex.htmlをどのように電子に読み込むかと同じようなパスを使わなければならないと思います。 '__dirname'で試してください –