electron sql.js Uncaught TypeError: must start with number, buffer, array or string
electron sql.js Uncaught TypeError: must start with number, buffer, array or string
我用 sql.js 文档创建了一个小脚本,但我无法将缓冲区写入 a.db (Win)
控制台给我错误:"Uncaught TypeError: must start with number, buffer, array or string"
是关于 "var data = db.export();" 函数的问题还是我的代码有问题?
var fs = require("fs");
var remote = require('remote');
var SQL = remote.require('sql.js');
var file = "a.db"
var exists = fs.existsSync(file);
if(!exists) {
console.log("DB creation: "+file+ "");
fs.openSync(file, "w");
}
var filebuffer = fs.readFileSync(file);
// Load the db
var db = new SQL.Database(filebuffer);
// Run a query without reading the results
db.run("CREATE TABLE test (col1, col2);");
// Insert two rows: (1,111) and (2,222)
db.run("INSERT INTO test VALUES (?,?), (?,?)", [1,111,2,222]);
var data = db.export();
var buffer = new Buffer(data);
fs.writeFileSync(file, buffer);
var SQL = remote.require('sql.js');
你为什么要在这里做远程需求? sql.js
不是 built-in main-process 模块,因此您没有理由不能在 renderer-process 中执行常规 require('sql.js')
。您应该非常小心地使用 remote
模块,因为跨进程边界的序列化可能有不需要的 side-effects(在 API docs 中记录)。
我用 sql.js 文档创建了一个小脚本,但我无法将缓冲区写入 a.db (Win) 控制台给我错误:"Uncaught TypeError: must start with number, buffer, array or string" 是关于 "var data = db.export();" 函数的问题还是我的代码有问题?
var fs = require("fs");
var remote = require('remote');
var SQL = remote.require('sql.js');
var file = "a.db"
var exists = fs.existsSync(file);
if(!exists) {
console.log("DB creation: "+file+ "");
fs.openSync(file, "w");
}
var filebuffer = fs.readFileSync(file);
// Load the db
var db = new SQL.Database(filebuffer);
// Run a query without reading the results
db.run("CREATE TABLE test (col1, col2);");
// Insert two rows: (1,111) and (2,222)
db.run("INSERT INTO test VALUES (?,?), (?,?)", [1,111,2,222]);
var data = db.export();
var buffer = new Buffer(data);
fs.writeFileSync(file, buffer);
var SQL = remote.require('sql.js');
你为什么要在这里做远程需求? sql.js
不是 built-in main-process 模块,因此您没有理由不能在 renderer-process 中执行常规 require('sql.js')
。您应该非常小心地使用 remote
模块,因为跨进程边界的序列化可能有不需要的 side-effects(在 API docs 中记录)。