在Electron应用程序中使用sql.js.

时间:2015-09-03 23:35:23

标签: javascript sqlite electron

我是Electron的新手。它非常棒,开始使用非常有趣和轻松。一段时间以来,我一直试图找到一个在我的应用程序中使用的“数据库”解决方案。当然有Web SQL /本地存储选项,但我试图使用SQLite。我找到了sql.js,它很棒且易于使用。我可以让一切正常运行放我无法保存/更新数据库文件! 这是代码:

    var remote = require('remote'),
    fileSystem = remote.require('fs'),
    sql = remote.require('./nodeModules/sql.js'),
    database = new sql.Database(fileSystem.readFileSync('./database.sqlite'));

    database.run('CREATE TABLE IF NOT EXISTS products (ID integer primary key autoincrement, name text, price integer, stock integer)');

    // Save the data back to the file
    var data = database.export();
    var buffer = new Buffer(data);
    fileSystem.writeFileSync("./database.sqlite", buffer);

但我从“缓冲区”收到此错误:Uncaught TypeError: must start with number, buffer, array or string。你以前遇到过这个问题吗?

2 个答案:

答案 0 :(得分:1)

我无法在Windows 10和OS X 10.11.5上的节点v6.2.2(npm v3.9.4)上重现此问题。代码与您的代码几乎相同:

fs.writeFileSync("filename.sqlite", new Buffer(db.export()));

查看此回购以获取更多信息: https://github.com/codewisdom/electron-sqljs

答案 1 :(得分:0)

我相信你必须通过调用:

来读取和写入数据库到返回的文件夹



electron.app.getPath('userData')



 我创建了一个example project showing how to use sql.js in Electron