1

我有一个电子网络包应用程序,我想用它在本地保存数据。我正在尝试使用 localForage/IndexedDB 作为我的后备存储,但我的开发周期遇到了一些问题。特别是,一旦我完全退出电子应用程序并重新启动它,我似乎无法加载以前保存的数据。但是,通过 Hot Module Reload 重新加载应用程序是可行的。

我做了一些挖掘,看起来 IndexedDB 每次启动应用程序时都会创建一个带有主机:端口对的目录:

(env) vishalkuo@Vishal's Macbook Pro client $ ll ~/Library/Application\ Support/Electron/IndexedDB/
total 0
8599832812 0 drwx------   7 vishalkuo  staff   224B  7 Jan 19:45 http_localhost_60612.indexeddb.leveldb
8599835990 0 drwx------   8 vishalkuo  staff   256B  7 Jan 22:33 http_localhost_58090.indexeddb.leveldb
8599836127 0 drwx------   7 vishalkuo  staff   224B  7 Jan 22:33 http_localhost_58692.indexeddb.leveldb
8599832810 0 drwx------   6 vishalkuo  staff   192B  7 Jan 22:34 .
8599836209 0 drwx------   7 vishalkuo  staff   224B  7 Jan 22:34 http_localhost_58788.indexeddb.leveldb

并且端口似乎与正在运行的 webpack-dev-server 一致。

我想知道 IndexedDB 或 localForage 是否有任何选项来规避此命名策略以支持用户提供的命名策略,或者我是否应该寻找其他存储策略

4

1 回答 1

0

我今天遇到了这个问题,我发现了这个帖子。也许这对将来的某人有用。app.on("ready", createWindow);在我添加之前的主进程中: app.setPath("userData", "DB_NEW_LOCATION");.

如果您想在构建后保留数据,请不要忘记添加"extraFiles": ["DB_NEW_LOCATION"/**/*"]您的 package.json。

于 2021-04-16T16:46:02.447 回答