electron开发桌面客户端时,在需要便携保存数据,就需要使用到数据库。
一般数据库,较常见的是mysql和MongoDB,但他们不能在electron上方便使用,并且数据不能便携。
这里介绍6个electron能使用的数据库,并做了一个简单的演示,放在github上,其中node-sqlite3编译了electron@2.0.14, modules@57,文件放在项目内。
数据库分别是
- node-sqlite3
- LevelDB,leveldown
- nedb
- lowdb
- localStorage
- indexedDB
其中node-sqlite3和LevelDB需要编译才能使用。
而且不能使用node编译后的,例如node-sqlite3在阿里npm上,有编译好的,但无法放在electron上直接使用,需要重新编译
Electron 同样也支持 Node 原生模块,但由于和官方的 Node 相比使用了不同的 V8 引擎,如果你想编译原生模块,则需要手动设置 Electron 的 headers 的位置。详情看这里
下面提到的淘宝镜像,,均是这个地址。
LevelDB
leveldb和local storage一样,是kv方式保存的
leveldb在github上,有为electron编译后的提供下载,我们就不需要自己编译了。
但需要注意下载的版本,通过process.versions查看当然electron的modules版本
例如electron@2.0.14这个版本,
1 | process.versions |
其中modules@57,并且当前的系统是win10 x64位,就需要下载leveldown-v4.0.1-electron-v57-win32-x64.tar.gz
把下载后的leveldown.node,放在node_modules\leveldown\build\Release\目录下。
具体使用请查官方文档或者看作者的electron数据库的演示github
node-sqlite3
sqlite就需要自己编译了,如果leveldown需要编译,方法和这里一样
编译环境
- 安装nodejs
- npm需要
全局安装node-gyp,npm install -g node-gyp - 安装
python@2.7,注意变量环境,和不要安装python@3 - 安装Visual Studio Build Tools,下载地址,需要勾选
v140工具集,总共下载2g多。

最后找一个合适的文件夹下,执行这条命令
npm install sqlite3 --build-from-source --runtime=electron --target=2.0.14 --dist-url=https://atom.io/download/electron
- npm install sqlite3 –build-from-source, 编译并安装sqlite3
- –runtime=electron –target=2.0.14 安装
electron@2.0.14的版本 - –dist-url 编译中需要用的文件,下载地址。默认的地址好像不能用了,也可能是我网络不好,我这无法使用。不要修改为阿里的地址
http://npm.taobao.org/mirrors/atom-shell,阿里更新不及时。
编译完成后,会把文件生成在node_modules\sqlite3\build\Release\node_sqlite3.node,
复制这个文件到electron项目下node_modules\sqlite3\lib\binding\electron-v2.0-win32-x64\node_sqlite3.node,其中electron-v2.0-win32-x64是因为electron@2.0.14,系统为win10 x64。
nedb,lowdb
这两个均是json文档类型的数据库,使用和查看都很方便。
因为他们会放在内存中,如果存放数据比多的时候,会出现性能问题。
localStorage,indexedDb
这两都能存放数据使用,但electron默认会把数据文件放在其他位置(win C:\Users\{系统用户名}\AppData\Roaming\{程序名字}\),不能达到便携的需求。
我们需要修改数据文件位置,放在自定的位置。
通过app.setPath,自定数据目录的位置
在启动electron代码中,添加如下代码。,
1 | ... |
修改数据目录在{当前程序目录}/userData里面,这样我们就可以达到便携的需求了