Ser*_*eit 9 mongodb pouchdb nedb electron
我们正致力于通过Electron提供基于Web和跨平台桌面解决方案的应用程序.
由于客户的要求,桌面客户端无法利用"云"来存储数据; 所有数据都应存储在本地计算机中,或者更好的是,用户应该可以选择将数据库/数据文件保存在外部HDD上,以便同一本地网络上的另一个用户可以使用相同的数据文件.
我们一直在研究NeDB,PouchDB等,但所有这些都使用浏览器本身的Web SQL或IndexedDB来存储数据.从理论上讲,NeDB可以使用文件系统,但这似乎只适用于Node Webkit应用程序.
另一种选择当然是MongoDB,但它需要在Web服务器上设置站点.看看我们的用户如何在自己的机器上设置它,这将仅适用于一个用户,但会使他们很难共享数据(注意:假设用户几乎没有技术知识).
我们最好使用NoSQL数据库,但也会考虑基于文件的SQL数据库的选项.
我在Electron应用程序中有一些NeDB的经验,我可以说它肯定会在文件系统上运行.
你是如何初始化NeDB的(或者你的数据库选择是什么)?另外,您是在主进程或渲染器进程中初始化它吗?如果您可以分享,我认为我们可以将问题跟踪到配置问题.
这是使用保存到磁盘的持久数据存储启动NeDB的方法.
var Datastore = require('nedb')
, db = new Datastore({ filename: 'path/to/datafile', autoload: true });
Run Code Online (Sandbox Code Playgroud)
我认为MongoDB对于一个Electron应用程序来说会有点过分(它实际上是一个在云中运行的高性能分布式数据库).
您可以考虑的另一个选项是LevelDB(可以持久保存到文件系统的键/值存储),它在节点社区中很流行.(编辑4/17/17 IndexedDB在引擎盖下使用LevelDB,所以如果你走这条路,也可以只使用它)
我肯定会仔细评估的一个方面是:这个数据库打包和分发有多困难?如何将其集成到我的构建系统中?可以简单地包含Level和NeDB,并且可以npm install
使用node- gyp 无缝地处理任何本机代码编译,这很简单.但是,捆绑Mongo需要一些工作来为每个不同的平台获得有效的构建.
归档时间: |
|
查看次数: |
4344 次 |
最近记录: |