我刚接触Electron,正在寻找一种持久化用户数据的好方法。据我所知,由于上下文隔离的安全性影响,您不应该将NodeJ的功能暴露到渲染器进程中。那么,实现一个共享的本地数据存储的最佳实践是什么,我可以在渲染器和(后台)主进程之间使用?只有主进程可以通过节点API访问文件系统,那么我是否总是必须通过调用preload脚本中暴露的依赖项从渲染器与存储交互?理想情况下,我希望有一些像chrome.storage的扩展,我可以在两个过程中使用,但不确定这是否可能。任何输入是赞赏!
chrome.storage
yjghlzjz1#
解决方案实际上取决于您希望持久化的数据类型...如果它们只是程序的设置,你可以使用类似电子设置包的东西
const settings = require('electron-settings');
但是,信息存储在关联AppData文件夹中的纯文本JSON文件中。然后使用IPC通道
const { ipcMain } = require('electron'); ipcMain.handle('myInvocationName', () => { return some_data; });
用于从主进程到渲染器进程的通信。相反,渲染器进程可以使用从主进程请求信息
const { ipcRenderer } = require('electron'); ipcRenderer.invoke('myInvocationName').then((returned_data) => { // do something with returned_data });
1条答案
按热度按时间yjghlzjz1#
解决方案实际上取决于您希望持久化的数据类型...
如果它们只是程序的设置,你可以使用类似电子设置包的东西
但是,信息存储在关联AppData文件夹中的纯文本JSON文件中。
然后使用IPC通道
用于从主进程到渲染器进程的通信。
相反,渲染器进程可以使用从主进程请求信息