ole*_*iba 7 local-storage electron
我正在运行一个电子应用程序,在其渲染过程中我使用HTML5 localStorage.
我很想知道在我的文件系统中这个localStorage实际存储的位置(我相信它是SQLite格式).
我看到了一个浏览器 localStorage存储在哪里 的答案,这里:
sessionStorage和localStorage存储在哪里?
我问这个是因为我希望能够运行这个电子应用程序的2个实例,这样每个应用程序都有不同的设置,我将其保存在localStorage中.
具体来说,我对Windows 10最感兴趣,但包装所有操作系统的答案都很棒.
它存储在AppData文件夹中,您可以通过查看值找到它require('app').getPath('userData')
.
这意味着即使删除了应用程序,数据仍会存在.如果你正在运行两个实例,你需要找到一些区分它们的方法,这样它们就不会践踏彼此的数据.
我必须在我的 Electron 应用程序中使用以下内容才能使其正常工作:
const remote = require('electron').remote;
const app = remote.app;
app.getPath('userData');
Run Code Online (Sandbox Code Playgroud)
但是,它存储数据的路径在:
\Local Storage\leveldb\
Run Code Online (Sandbox Code Playgroud)
所以你的整个路径看起来像:
C:\Users\<USER-NAME>\AppData\Roaming\<APP-NAME>\Local Storage\leveldb\
Run Code Online (Sandbox Code Playgroud)
日志文件:不是 Sqlite DB 尽管浏览器(在我的例子中是 FireFox)将 localStorage 数据存储在一个 sqlite 文件中,但 Electron 似乎没有。
相反,它将数据保存在一个奇怪的 .log 文件中,我的名字是 .log 000003.log
。
这是我从应用程序的控制台运行三个 localStorage.setItem() 命令后的样子。
这是我运行三个命令的 Electron 应用程序的控制台。如果您仔细查看图像,您可以将命令与 000003.log 文件中的数据进行匹配。
进一步证明这是存储位置/机制
如果我在控制台中运行 localStorage.getItem("fakeData") 则返回该值。
但是,如果您:
你不会得到任何返回值。
现在完成循环:
您将再次看到该值。
LevelDB:谷歌东西
我正在考虑这种疯狂的格式,然后我想到了最终目录的名称(leveldb)。我做了一个duckduckgo,发现了这个:https : //github.com/google/leveldb
所以我猜这是因为 Electron 使用 Chrome 引擎的格式。
LevelDB 是由 Google 研究员 Jeffrey Dean 和 Sanjay Ghemawat 编写的开源磁盘键值存储。受 Bigtable 的启发,LevelDB 在新 BSD 许可下托管在 GitHub 上,并已移植到各种基于 Unix 的系统、macOS、Windows 和 Android。
归档时间: |
|
查看次数: |
3429 次 |
最近记录: |