最近使用electron
开发个桌面程,需要使用到数据库。
一般说起数据库,联想到的就mysql
和MongoDB
,但在electron都无法直接使用。
所以有了这篇文章。
介绍3个electron能使用的数据库,当然肯定不只这三个。
其中前两个需要编译才能使用,而且需要在electron上面使用node原生模块,和在node上使用的原生模块,不是一样的。
就是说,有node编译好的包,在electron没法使用,详情看这里
Electron 同样也支持原生模块,但由于和官方的 Node 相比使用了不同的 V8 引擎,如果你想编译原生模块,则需要手动设置 Electron 的 headers 的位置。
下面提到的淘宝镜像,,均是这个地址。
编译环境
- npm需要
全局
安装,node-gyp
, - 安装
python2.7
- 如果没有安装
Visual Studio 2015
,那就需要安装Visual C++ Build Tools
,下载地址,详情查看这里。在win7上面成功了,在win10却失败了。这个需要安装很久,网络不好,建议挂代理。出了默认的,还需要win8 sdk
,大概需要下载2g的样子。
LevelDB
npm 需要安装leveldown
和levelup
,具体使用查看项目地址。
其中leveldown
需要编译
其实leveldown,已经编译好了electron,可供下载。下载地址,并且淘宝有分流。这个版本,是1.70-0,但实际,你需要安装1.6.0,不然会提示版本依赖错误。
注意,这里下载需要更具v8
的版本,最新electron@1.6.5,对应使用的node@7.4,v8@5.4。
console.log(process.versions)
但编译好的,最高v8@51的,所以要用编译好的,就要降版本。
使用electron@1.4.16,node@6.3,对应v8@5.0,
解压到leveldown/build/Release
下面。
如果要自己编译,在package.json添加下面的,但没有测试过,参考这里
"scripts": {
"postinstall": "cd node_modules/leveldown &&node-gyp rebuild --target=1.6.5 --arch=x64 --dist-url=https://npm.taobao.org/mirrors/atom-shell"
},
记得安装编译环境。
node-sqlite3
其实最开始想使用的是他,结果编译太麻烦了,哈哈。
他没有提供任何编译后的模块,可能是我没有找到,在淘宝镜像里面有,但只有node的,却没有electron的,所以需要自己编译。
在package.json添加下面的,
"scripts": {
"postinstall": "cd node_modules/sqlite3 && npm install nan && npm run prepublish && node-gyp configure --module_name=node_sqlite3 --module_path=../lib/binding/electron-v1.6-win32-x64 && node-gyp rebuild --target=1.6.2 --arch=x64 --target_platform=win32 --dist-url=https://npm.taobao.org/mirrors/atom-shell"
},
然后安装sqlite3,我是直接写到package.josn里面,npm i 安装的。
这里我编译的 v8@54,node@7.4,分享一下,就不需要上面那样编译了,
正常安装 sqlite3,下载后,解压到sqlite3/lib/binding/electron-v1.6-win32-x64/node_sqlite3.node
。
nedb
最后选择nedb,最主要原因,不需要编译,就是这么任性。
网友评论