electron使用数据库

作者: fengbj | 来源:发表于2017-04-23 21:09 被阅读662次

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

一般说起数据库,联想到的就mysqlMongoDB,但在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 需要安装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,最主要原因,不需要编译,就是这么任性。

相关文章

网友评论

  • 王大白_:想问下,你最终nedb是存在哪里呢 什么路径,自动更新不会把数据都冲掉吗
    fengbj:是保持在项目更目录的 /db 这里面,自动更新是指?

本文标题:electron使用数据库

本文链接:https://www.haomeiwen.com/subject/awnyzttx.html