You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

嵌入式系统中如何通过预安装SQLite3驱动实现Node.js调用

利用系统预安装SQLite3在Node.js中使用的解决方法

核心思路

npm安装sqlite3失败多因嵌入式环境缺少编译工具链,无法构建原生模块。可通过两种方式解决:改用无需编译的纯JS SQLite库,或配置sqlite3包基于系统已装SQLite编译。

方法1:使用纯JavaScript SQLite库(推荐)

这类库无需编译,直接适配Node.js运行环境:

  • 安装依赖:
    npm install sqlite
    
  • 示例代码:
    const sqlite3 = require('sqlite').verbose();
    // 连接本地数据库文件,或使用:memory:创建内存库
    const db = new sqlite3.Database('./test.db');
    
    db.serialize(() => {
      // 创建表
      db.run("CREATE TABLE IF NOT EXISTS demo (id INTEGER PRIMARY KEY, content TEXT)");
      // 插入数据
      db.run("INSERT INTO demo (content) VALUES (?)", ['Hello SQLite']);
      // 查询数据
      db.each("SELECT * FROM demo", (err, row) => {
        if (err) throw err;
        console.log(`ID: ${row.id}, Content: ${row.content}`);
      });
    });
    
    db.close();
    

方法2:配置sqlite3基于系统SQLite编译

若必须使用官方sqlite3包,需指定系统SQLite路径强制本地编译:

  1. 先安装编译依赖(嵌入式系统需确保有make、gcc、libsqlite3-dev这类工具)
  2. 执行安装命令,指定系统SQLite的安装路径(通常为/usr):
    npm install sqlite3 --build-from-source --sqlite=/usr
    
  3. 验证安装:
    const sqlite3 = require('sqlite3').verbose();
    const db = new sqlite3.Database(':memory:');
    db.get('SELECT sqlite_version() AS ver', (err, result) => {
      if (err) throw err;
      console.log('当前使用SQLite版本:', result.ver); // 应输出3.38.5
    });
    db.close();
    

注意事项

  • 嵌入式系统资源有限,纯JS库性能略低于原生编译版本,但足以覆盖多数业务场景。
  • 若无编译工具链,优先选择纯JS库方案,避免编译失败问题。

内容的提问来源于stack exchange,提问作者André Fiedler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 16:20:36