0

sql.js ドキュメントを使用して小さなスクリプトを作成しましたが、バッファーを .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);
4

1 に答える 1

0
var SQL = remote.require('sql.js');

なぜここでリモート要求を行っているのですか? 組み込みのメイン プロセス モジュールではないため、レンダラー プロセスでsql.js定期的に実行できない理由はありません。プロセスの境界を越えたシリアル化には望ましくない副作用が生じる可能性があるためrequire('sql.js')、モジュールの使用には十分注意する必要があります (これについてはAPI ドキュメントに記載されています)。remote

于 2016-01-27T06:07:05.307 に答える