在电子(Atom Shell)应用程序中存储用户设置的位置
Where to store user settings in Electron (Atom Shell) Application?
我似乎找不到一个内置的机制来存储用户设置。我希望electron提供一种跨所有桌面平台存储用户设置的标准方法。如果没有先例,我可以自己实现它,我只是不想立即跳到自定义解决方案。网上对这方面的研究很少。谢谢!
每个平台对于不同类型的数据有不同的默认位置。因此,如果您希望将数据存储在基于平台的默认位置,请查看app.getPath(name)
获取与name
相关的特殊目录或文件的路径。
您还可以使用它来区分用户想要保存的数据和应用程序保存的不想弄乱用户目录的数据。
或者,如果您只想存储与特定路径相关的文件,则可以使用app.setPath(name,path)
我在我的电子应用程序中遇到过这个特殊的问题,这篇文章激发了我写一个名为Electron -json-storage的NPM模块。
该模块允许轻松地从app.getPath('userData')
写入/读取JSON:
const storage = require('electron-json-storage');
// Write
storage.set('foobar', { foo: 'bar' }).then(function() {
// Read
storage.get('foobar').then(function(object) {
console.log(object.foo);
// will print "bar"
});
});
Electron并没有为你提供任何现成的东西。但是,Electron确实提供了一种方法,可以通过app.getPath API以跨平台的方式获取存储用户数据的惯用位置。
我想说三种最常见的方法是:
- localStorage(或任何HTML5存储API)
- 平面JSON文件(这就是我所做的,我使用电子存储)
- 嵌入式数据库,如IndexedDB, neDB或sqlite
你选择哪一个将取决于你的应用程序的需要。如果你只需要在渲染过程中访问这些数据,那么我只使用localStorage
。大多数时候,您似乎需要访问主程序和呈现程序中的数据,因此JSON文件是有意义的。如果您正在处理大量数据或复杂的查询,那么数据库可能是有意义的。
LocalStorage怎么样?如果你需要从浏览器进程中访问这些设置,你可能需要自己编写(或者只使用实现此功能的node.js库)
我发现最好的方法是将其作为JSON存储在一个简单的文件中。问题是,如果你将JSON存储在app目录中,那么当你更新app时,它就会被删除。因此,您希望将其放在当前操作系统的用户设置的默认目录中。幸运的是! !有一个面向节点开发人员的库可以帮助您找到userdata目录。这个模块叫做appdirectory
,我已经用过好几次了。它非常容易使用。
参见APPDIRECTORY HERE
可以将数据存储在cookie中;Electron有一个机制(https://electronjs.org/docs/api/cookies), cookie可以在浏览器中检索(Angular: https://docs.angularjs.org/api/ngCookies/service/$cookies, React/Other: https://github.com/reactivestack/cookies)
我可以让它在Angularjs中工作
- 使用Angular存储用户以前是否选中过复选框,然后再调用它的最佳方式是什么
- 临时存储用户表单数据的最佳方式,用于表单重新提交
- 如何使用MongoDB在MeteorJs中存储用户操作
- 用于在 Chrome 扩展程序中存储用户数据的选项
- 如何使用本地存储存储用户的页面历史记录
- 存储用户数据的最佳方式
- 在网站中存储用户从一页到另一页的点击
- 如何在Metro应用程序中存储用户偏好
- 在主干网中存储用户设置
- 存储用户会话:node.js, express, mongoose-auth
- 使用localstorage创建和存储用户对象
- 如何存储用户输入的url(锚链接)并使用window.location重定向用户
- 在JS中存储用户输入和计算人格测验
- Facebook登录时存储用户数据
- 在HTML5中存储用户输入数据
- 如何以加密的形式存储用户数据
- 在PhoneGap浏览器中存储用户数据
- 使用HTML5 localStorage存储用户突出显示的行
- 如何在html静态页面上创建模态表单以在rails中存储用户
- 存储用户之前是否按过按钮