电子应用程序与数据库

我正在开发一个使用primefaces的电子项目的应用程序,我想有一个轻量级的数据库与该应用程序一起使用。 到目前为止,我没有成功,也很沮丧。 请帮我找一个本地数据库。

我试图用sqlite3没有成功。 我无法build立它。 我使用电子v0.31.0,我认为在内部使用iojs v3.1.0,并导致sqlite3不能编译。

我会考虑使用knexjs,因为它实际上是相当成熟的,并且已经获得了相当多的速度。 您将需要以下之一,但…

  • 皮克
  • sqlite3 ***
  • MySQL的
  • mysql2
  • mariasql
  • 强神谕
  • 神谕

另外,我发现这个链接帮助我解决了我的node_sqlite3问题。

快乐编码!

你有没有试过nedb ? 用纯JavaScript书写,没有依赖性。 我曾试过一次。 如果你正在寻找SQL的,那么它不会是你正在寻找的东西。

Windows版本的node_sqlite3问题的解决scheme可以在这里find (在@ aestrro的答案中的死链接)

TL; DR (截至2016年8月)

cd .\node_modules\sqlite3 npm install nan --save npm run prepublish node-gyp configure --module_name=node_sqlite3 --module_path=../lib/binding/electron-v1.3-win32-x64 node-gyp rebuild --target=1.3.2 --arch=x64 --target_platform=win32 --dist-url=http://electron.atom.io/ --module_name=node_sqlite3 --module_path=../lib/binding/electron-v1.3-win32-x64 

我有与sqlite3相同的问题。 尝试了一切,最后这对我工作: –

 npm install --save sqlite3 npm install --save electron-rebuild npm install --save electron-prebuilt .\node_modules\.bin\electron-rebuild.cmd 

这将在电子使用sqlite3的。\ node_modules \ sqlite3 \ lib \ binding \ location中创build“electron-v1.3-win32-x64”文件夹。

只需启动应用程序,你现在就可以使用sqlite3了。

或者,如果你真的使用sqlite.js这是SQLite的JavaScript端口,通过编译SQLite C代码与Emscripten。 它可以用熟悉的查询从服务器和磁盘读取数据库:

 var contents = db.exec("SELECT * FROM my_table"); 

如果您希望在线/离线同步function查看PouchDB的复制function:

 db.replicate.to('http://example.com/mydb'); 

我不会推荐本地节点sqlite3模块。 它需要重build与电子一起工作。 这是一个巨大的痛苦 – 至less我永远不能得到它的工作,并没有指示重build模块在Windows上。

而是看看kripken的“sql.js”模块是sqlite3,它已经在JavaScript中编译了100%。 https://github.com/kripken/sql.js/

如果你想在电子和其他环境中使用相同的数据库,你应该检查出RxDB

一个有趣的,但不是很stream行的dbs是https://www.npmjs.com/package/tingodb

它在API级别与MongoDB兼容,并将数据存储在文件中。

使用带有Electron的node-sqlite3的更简单的方法是使用electron-boilerplate-sqlite :

 git clone https://github.com/sjmelia/electron-boilerplate-sqlite cd electron-boilerplate-sqlite npm install npm start 

你试过Dexie吗? 它是积极的维护(到目前为止)和大量的启动(2K +),并有大量的方法/ apis

http://dexie.org

GitHub示例: https : //github.com/dfahlander/Dexie.js/tree/master/samples/electron