【问题标题】:I am getting an error while connecting to sqlite3 database连接到 sqlite3 数据库时出现错误
【发布时间】:2017-05-09 12:50:24
【问题描述】:

连接到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\binding\electron-v1.4-win32-ia32\node_sqlite3.node

谁能为此提出解决方案?我搜索了很多,但没有找到这个的解决方案。

【问题讨论】:

标签: node.js sqlite electron


【解决方案1】:

我通过使用电子重建得到了这个工作

首次安装:

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.7 版本。
  • 我按照您的指示进行操作,但仍然出现错误。
【解决方案2】:

就像维克多·伊文斯上面所说的,

npm install --save-dev electron-rebuild

然后,在你的 package.json 中添加脚本:

"rebuild": "electron-rebuild -f -w sqlite3 -v 1.7" // for version 1.7

瞧,它有效。 你可以忽略预建

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-19
    • 2019-01-08
    • 1970-01-01
    • 1970-01-01
    • 2016-10-26
    • 2018-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多