程序员充电站Electron开发

electron使用数据库

2017-04-23  本文已影响662人  fengbj

最近使用electron开发个桌面程,需要使用到数据库。

一般说起数据库,联想到的就mysqlMongoDB,但在electron都无法直接使用。

所以有了这篇文章。

介绍3个electron能使用的数据库,当然肯定不只这三个。

其中前两个需要编译才能使用,而且需要在electron上面使用node原生模块,和在node上使用的原生模块,不是一样的。

就是说,有node编译好的包,在electron没法使用,详情看这里

Electron 同样也支持原生模块,但由于和官方的 Node 相比使用了不同的 V8 引擎,如果你想编译原生模块,则需要手动设置 Electron 的 headers 的位置。

下面提到的淘宝镜像,,均是这个地址。

编译环境

LevelDB

npm 需要安装leveldownlevelup,具体使用查看项目地址。

其中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,最主要原因,不需要编译,就是这么任性。

上一篇下一篇

猜你喜欢

热点阅读