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

Dew*_*159 5 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);
Run Code Online (Sandbox Code Playgroud)

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

cod*_*ise 1

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

fs.writeFileSync("filename.sqlite", new Buffer(db.export()));
Run Code Online (Sandbox Code Playgroud)

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