我想在本地创建一个数据库文件并将所有数据写入其中,但要在没有node.js和Coffeescript的情况下进行。我想通过Javascript来做到这一点,只是为了在浏览器中运行,因为我正在开发用于存储一些数据的应用程序,并且该应用程序必须与我的同事共享,并且我没有在PC上安装NodeJ的权限。
var sql = window.SQL;
var db = new SQL.Database();
db.run("CREATE TABLE test (col1, col2);");
db.run("INSERT INTO test VALUES (?,?), (?,?)", [1,111,2,111]);
db.run("INSERT INTO test VALUES (?,?), (?,?)", [3,333,4,444]);
var stmt = db.prepare("SELECT * FROM test WHERE col1 BETWEEN $start AND $end");
stmt.getAsObject({$start:1, $end:1});
stmt.bind({$start:1, $end:4});
while(stmt.step()) {
var row = stmt.getAsObject();
console.log(row.col1)
}
var data = db.export();
//As per the official documentation, the data is converted into
//buffer and written into file using writeFileSync();
var buffer = new Buffer(data);
fs.writeFileSync("filename.sqlite", buffer);
但是由于Buffer()和writeFileSync()是NodeJs函数,因此我无法在代码中使用它们。还有其他方法可以将数据写入数据库,然后将其导出到文件中吗?
最佳答案
从客户端代码执行对数据库的请求不是一个好主意。这是不安全的。
而且,您基本上需要在PC上安装节点,因为它是JS的运行时环境,而来自fs模块的具有writeFileSync()的Buffer是此运行时的一部分。