连接到sqlite3
数据库时出错。
这是我的代码
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('testdb');
db.serialize(function(){
dbb.run("create table user (id int, db text)");
var stmt = db.prepare("insert into user values(?,?)");
for(var i=0; i<10; i++){
var d = new Date();
var n = d.toLocateTimeString();
stmt.run(i,n);
}
stmt.finalize();
db.each("select id, dt from user",function(err,row){
console.log("user id:"+row.id,row.dt);
});
});
db.close();
错误是:
未捕获错误:找不到模块'path_to_project \ node_modules \ sqlite3 \ lib \ binding \ electron-v1.4-win32-ia32 \ node_sqlite3.node'
当我签入此文件夹node_modules\sqlite3\lib\binding
时,它有一个文件夹和node-v48-win32-ia32\node_sqlite3.node
而不是electron-v1.4-win32-ia32\node_sqlite3.node
的文件。
有人建议我将文件夹名称node-v48-win32-ia32
更改为electron-v1.4-win32-ia32
。然后它会工作。但它返回另一个错误
ELECTRON_ASAR.js:173未捕获错误:系统无法在%2的消息文件中找到消息号0x%1的消息文本。 \?\ path_to_project \ node_modules \ sqlite3的\ lib中\结合\电子V1.4-Win32的IA32 \ node_sqlite3.node
有人可以为此建议解决方案吗?我搜索了很多,但找不到这个解决方案。
答案 0 :(得分:3)
我通过使用电子重建来实现这一点
首先安装:
npm install --save-dev electron-rebuild
npm install --save-dev electron-prebuilt
然后,在package.json
添加脚本:
"rebuild": "electron-rebuild -f -w sqlite3 -v 1.X"
并运行
npm run rebuild
我不得不多次运行它,将-v
更改为所需的版本,1.2,1.4或1.6
答案 1 :(得分:1)
就像Victor Ivens上面所说,
npm install --save-dev electron-rebuild
然后,在你的package.json中添加脚本:
"rebuild": "electron-rebuild -f -w sqlite3 -v 1.7" // for version 1.7
瞧,它有效。 你可以忽略预建的