gpt4 book ai didi

node.js - Sqlite Electron : Error: SQLITE_CANTOPEN: unable to open database file

转载 作者:太空宇宙 更新时间:2023-11-04 01:17:29 24 4
gpt4 key购买 nike

我正在尝试在我的 Angular + Electron 应用程序中使用 node-sqlite3 打开 sqlite 数据库文件。

尽管我确保该文件存在并且 Electron 可以读取它,但当我尝试使用以下方法创建 sqlite 数据库时:

import * as sqlite from 'sqlite3';

// ...

const path = `${__dirname}/assets/sqlite.db`;

const fs = require('electron').remote.require('fs');
console.log(path);
if (fs.existsSync(AppConfig.sqlitePath)) {
console.log('the file exists');
} else {
console.log('the file does not not');
}

const myDb = new sqlite.Database(path, sqlite.OPEN_READONLY, (error) => {
console.log(error);
});

该文件存在,因为我收到了正确的 console.log 消息,它看起来像:

/tmp/.mount_xxxxxx/resources/app.asar.unpacked/dist/assets/sqlite.db

但是,从 new sqlite.Database(...) 我收到以下错误,因为该文件不存在:

Error: SQLITE_CANTOPEN: unable to open database file

最佳答案

我收到了artiebits的提示来看看asarUnpack这确实是正确的做法。

<小时/>

我解决了:

1) 将以下内容添加到我的 electron-builder.json 中:

"asarUnpack": [
"dist/assets/sqlite.db"
],

2)替换:

const path = `${__dirname}/assets/sqlite.db`;

与:

const path = `${__dirname}/assets/sqlite.db`.replace('app.asar', 'app.asar.unpacked');

关于node.js - Sqlite Electron : Error: SQLITE_CANTOPEN: unable to open database file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60422885/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com