如何将 sqlite3 模块与 Electron 一起使用?

2023-11-22

我想使用开发桌面应用程序electron使用通过 npm 使用命令安装的 sqlite3 包

npm install --save sqlite3

但它在电子浏览器控制台中给出以下错误

Uncaught Error: Cannot find module 'E:\allcode\eapp\node_modules\sqlite3\lib\binding\node-v45-win32-x64\node_sqlite3.node'

我的开发环境是windows 8.1 x64 节点版本 12.7

my 包.json文件看起来像这样:

{
  "name": "eapp",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "electron ."
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "electron-prebuilt": "^0.32.1"
  },
  "dependencies": {
    "angular": "^1.3.5",   
    "sqlite3": "^3.1.0"
  }
}

索引.js 文件

var app = require('app');
var BrowserWindow = require('browser-window'); 
require('crash-reporter').start();
var mainWindow = null;


app.on('window-all-closed', function() {  
    if (process.platform != 'darwin') {
        app.quit();
    }
});

app.on('ready', function() {
    // Create the browser window.
    mainWindow = new BrowserWindow({width: 800, height: 600}); 
    mainWindow.loadUrl('file://' + __dirname + '/index.html');   
    mainWindow.openDevTools();  
    mainWindow.on('closed', function() {       
        mainWindow = null;
    });
});

my.js 文件

var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('mydb.db');

db.serialize(function() {
    db.run("CREATE TABLE if not exists lorem (info TEXT)");

    var stmt = db.prepare("INSERT INTO lorem VALUES (?)");
    for (var i = 0; i < 10; i++) {
        stmt.run("Ipsum " + i);
    }
    stmt.finalize();

    db.each("SELECT rowid AS id, info FROM lorem", function(err, row) {
        console.log(row.id + ": " + row.info);
    });
});

db.close();

索引.html 文件

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<div >
    <div>
        <h2>Hello</h2>
    </div>

</div>
<!--<script src="js/jquery-1.11.3.min.js"></script>-->
<script src="js/my.js"></script>
</body>
</html>

到目前为止,将 SQLite 与 Electron 结合使用的最简单方法是electron-builder.

首先,在 package.json 中添加安装后步骤:

"scripts": {
   "postinstall": "install-app-deps"
   ...
}

然后安装必要的依赖项并构建:

npm install --save-dev electron-builder
npm install --save sqlite3
npm run postinstall

electronics-builder 将为您的平台构建本机模块,并使用 Electron 绑定的正确名称;然后你就可以require像平常一样在代码中。

See my github 仓库 and 博客文章- 我也花了很长时间才弄清楚这一点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 sqlite3 模块与 Electron 一起使用? 的相关文章

  • 如何在node.js中同步读取文件或Stream?

    请不要讲授关于我应该如何异步完成所有事情的讲座 有时我想以简单明显的方式做事 这样我就可以继续其他工作 由于某种原因 以下代码不起作用 它与我在 a 上找到的代码匹配最近的问题 https stackoverflow com questio
  • nodeJS + Swig 模板将变量传递给 javascript

    有没有办法使用nodeJS的express swig模板将变量从服务器端传递到客户端javascript 我知道这可以在 Jade 中完成 但我宁愿坚持使用更类似于 HTML 的模板引擎 感谢各位的帮助 好的 我假设您可以使用 consol
  • pine、node.js (express) 和 Access-Control-Allow-Origin

    我正在本地电脑上开发一个应用程序 前端应该使用 spinjs 构建 后端 api 使用 node js 构建 Spine 运行在端口 9294 上 node js 运行在端口 3000 上 在 Spine 中 我在模型中添加了以下内容 ur
  • 无法使用 Tedious 和 Node JS 连接到本地 SQL Server 数据库

    我正在尝试连接到本地计算机上的 SQL Server 我正在尝试使用乏味和乏味 ntlm 两者的配置如下 var tds require tedious ntlm var tds require tedious var config use
  • 反应本机套接字 io 没有从客户端发出事件

    尝试将socket io client与react native 现在是ios 一起使用 到目前为止 连接 从客户端接收服务器端事件似乎工作正常 但是我似乎无法从客户端发出任何事件 Client var socket io http loc
  • 如何从CDN注入外部JS到Jest单元测试?

    我有 npm 和 webpack 的反应应用程序 我正在尝试向其添加单元测试 我使用的是包含在我的index html 中的CDN 的jQuery 而不是使用节点模块 我在组件中使用 jQueryTest1我向其中添加了单元测试用例 现在
  • 如何在 Express (NodeJS) 中验证和处理表单

    Express 是否有首选的表单处理和验证库 我真的在寻找与 Django 表单中类似的抽象级别 即模板中的验证和错误报告 如果可以在客户端使用相同的验证 那就太好了 有人用过或者写过什么好东西吗 看起来有一个模块位于https githu
  • 让 Express 服务器接受 CORS 请求

    我的 Express 服务器运行在 http localhost 3000 我称之为网络服务器 我有另一个应用程序在 localhost 8100 上运行 我简称为 应用程序 当我的应用程序调用网络服务器时 我收到以下消息 XMLHTTPR
  • 如何在express中动态渲染/加载页面?

    我需要使用express gt 3 0 框架动态加载 渲染nodejs v1 8 15 中页面的一部分 一般来说 我想创建一个单页应用程序 我在页面顶部有一个带有链接的菜单 单击链接将更改下面的内容 就像 AJAX 页面加载一样 例如 gt
  • Node.js 在 Google Cloud Platform 上运行 Hello World 错误部署错误

    我在 Mac OSX Yosemite 上 当我执行以下步骤 运行 Hello World 时出现错误适用于 Google Cloud Platform 的 Node JS Hello World 教程 https cloud google
  • Ruby 在 Windows 上找不到 sqlite3 驱动程序

    我正在尝试在 Windows 上设置 Ruby on Rails 我正在使用看起来不错的 Flash Rails 发行版 但是 sqlite3 有一个问题 我发现线程告诉我安装版本 1 2 3 安装得很好 我使用的是 ruby 1 9 0
  • Angular 5 - ag-grid 18.0.1 - 边缘崩溃

    我一直在到处搜索 但无法找到与此相关的任何信息 很可能是因为 ag grid update 18 x 是新的 无论如何 似乎在将 ag grid 从 17 1 1 更新到 18 0 1 后 任何带有 ag grid 的页面最终都会导致 ED
  • 在 React 应用程序中简单连接到 mongodb

    我使用 create react app 创建了简单的反应应用程序 这个应用程序包含表单 验证和引导程序 没有什么花哨的东西能像魅力一样发挥作用 我还注册了 mongo 以获得免费集群 以便我可以发送一些数据 所以我有这个网址 mongod
  • 如何在 Google App Engine 上部署 1 个实例

    我需要在 Google App Engine 上部署一个简单 Node js 应用程序的 1 个实例 无需任何形式的扩展 我试过做gcloud preview app deploy 但是即使在我尝试关闭它们之后 也会创建许多实例 我的目标是
  • 如何在 TypeScript 中获取源代码中的实际行号(用于自定义日志记录)

    参考文献这个问题 https stackoverflow com questions 1340872 how to get javascript caller function line number how to get javascri
  • Passport-local-mongoose:createStrategy 不是函数/authenticate 不是函数

    我正在构建这个启动项目 https github com cj wang mean start tree 424e6056e33bb16874ae808daf3780d53309296f并尝试添加用户登录护照本地猫鼬 https www n
  • EF Core 2.1 启动缓慢

    在获得了 EF6 的一些经验后 例如this https stackoverflow com questions 48441674 extremely slow ef startup 15 minutes 我想尝试一下 EF Core 因为
  • Nodemailer:从未收到问候语

    当尝试使用 Nodemailer 在 Node 内发送电子邮件时 https github com nodemailer nodemailer https github com nodemailer nodemailer 调用sendMai
  • 无法在渲染器进程中使用 Node.js API

    无法在 Electron 中使用任何与 Electron 或节点相关的操作 未定义获取错误过程 我检查了他们指导添加节点支持的各个地方 但这已经完成了 所以卡在这里 我的主要应用程序代码是 const electron require el
  • 条件必须具有 bool 静态类型

    有什么方法可以在这种情况下使用未来的布尔值 或者有更好的方法吗 Widget buildRow String pair final Future

随机推荐

  • Angular2 - 在 Azure 中托管时页面刷新 404ing

    我正在开发 Angular2 应用程序 它使用 Angular common 2 0 0 rc 4 和 Angular router 3 0 0 beta 2 我的问题是 当我在某些页面上使用浏览器刷新时 我看到一条错误消息 您正在查找的资
  • 使用 -MM 在 Makefile 中生成依赖项时出现问题

    我是 Makefiles 和 g 的新手 在使用 MM 标志生成项目文件的依赖项时遇到了问题 我发布了我正在使用的 Makefile 供您考虑 请看一下 OUTPUT ROOT output SOURCE ROOT source TITLE
  • SQL:为什么在此 where 子句中过滤掉 NULL 值?

    在我的表中 我有一个可为空的位列 旧系统 另一位开发人员最近对存储过程进行了更改 以仅显示位列不为 true 的值 1 因为这是一个可为空的列 我们注意到如果该列为 NULL 则不会选取记录 为什么是这样 其他开发人员和我都同意 NULL
  • 如何在 PHP 中将变量作为 $_POST 键传递?

    在 PHP 中如何将变量作为 POST 数组键值传递 还是不可能 test test echo POST test Thanks 如果我没理解错的话 你想通过 post 将一个变量从一个 php 文件传递 到另一个 php 文件 这肯定可以
  • 如何在 mat-list-option (mat-selection-list) 项中添加辅助操作

    如何在 mat list option 元素内的 mat selection list 中添加辅助操作 mat icon button 目前 所有项目都添加到 mat list text div 内 例子 https stackblitz
  • 使用 MSI 从本地 Service Fabric 群集访问 Key Vault

    我想通过托管服务身份 MSI 从 Service Fabric 应用程序访问 Key Vault 我已在 Azure 门户中的虚拟机规模集上启用 MSI 并授予其对我的 Key Vault 资源的访问权限 这就像云端的魅力一样 但是 我的本
  • 无法在 Windows 10 中安装 sdkmanager

    我正在尝试单独安装 sdk 管理器以便与 Eclipse 一起使用 我下载了谷歌提供的zip文件 命令行工具 win 6200805 latest zip from https developer android com studio 但当
  • 使用scrapyd有什么优势?

    scrapy 文档说 Scrapy 附带一个名为 Scrapyd 的内置服务 它允许您部署 也称为上传 您的项目并使用 JSON Web 服务控制其蜘蛛 使用 scrapyd 在一致性方面有一些优势吗 Scrapyd 允许您通过方便的 We
  • 使 bash 中的命令超时,避免不必要的延迟

    这个答案 to 命令行命令在一定时间后自动终止命令 提出了一种 1 行方法来使 bash 命令行中长时间运行的命令超时 path to slow command with options sleep 5 kill 但给定的 长时间运行 命令
  • Django 表命名约定。我可以改变它的行为吗?

    当 Django 创建表时 它会为它们提供 app class 形式的名称 我正在为 Django 安装改造一个不同的 但内容基本相似 数据库 我的表名称没有以 app 开头 我可以相应地重新创建我的数据库及其表 但我想看看 Django
  • 页面退出时弹出框

    我想做的是在页面退出或导航离开时创建一个弹出框 现在我有 我有两个问题 仅当您实际离开页面 刷新 新 URL 等时 它才会显示该框 如果您退出选项卡或浏览器 则不会弹出该框 无论您按哪个按钮 它只会将您发送到
  • 在关联文件中更改新版本的版本号(文档)

    我很想知道你们是如何处理的修改版本号对于新版本问题 如何处理关联文件 例如手册页等 中的版本号 该软件是使用 gnu 工具链构建的 因此 autoconf automake 等可用并用于应用程序的版本号 这样信息就可以被重用 git 被用作
  • Rails 中处理无效表单提交的正确方法

    我是 Rails 新手 不确定我是否同意我在一些教程中完成的工作方式 该问题与如何处理无效的表单提交有关 标准的做事方式似乎是 class ThingsController lt ApplicationController POST thi
  • 如何从 bash shell 脚本中的一行中提取单词[重复]

    这个问题在这里已经有答案了 我想从 bash 脚本中的句子中提取一个单词 它使用逗号和空格作为分隔符 ex date crossed 122 name foo userid 234567 sessionid 2233445axdfg5209
  • AFNetworking 2.0 POST 问题,Cocoa 错误 3840(JSON 文本未以数组开头...)

    我正在尝试在本地服务器上调用 api php 使用 MAMP 正在调用服务器端 api php 但 php 代码中的 POST 内容包含以下错误 Error Domain NSCocoaErrorDomain Code 3840 The o
  • 实现自定义 MVC 基本视图页面

    我正在尝试实现 MVC 自定义基本视图页面以 覆盖 User财产种类 这将使我的CustomPrincipal在任何视图中均可访问的类型 在网上搜索后 我发现Phil Haack 关于实现自定义基本视图页面的说明 我完全按照说明进行操作 但
  • Unicode字符插入数据库后变成问号

    当我将一些用 Unicode 编写的文本插入数据库时 它们变成了问号 数据库编码设置为UTF 8 还有什么可能是不正确的 当我检查 phpMyAdmin 时 只插入了问号 这是我用于连接数据库的代码 define DB HOST local
  • 如何在 Python 中创建和导入自定义模块

    如何将以下函数保存在一个 python 文件中 然后在另一个文件中使用它 文件A中的函数 def basic x print x B文件中的声明 basic some string A 创建一个包含所有模块的文件夹 例如 让我们使用 MyM
  • HTML.fromHtml 换行符消失

    我从 EditText 框中获取 Spanned Text 并使用 HTML toHtml 将其转换为 HTML 标记字符串 这很好用 我已经验证该字符串是正确的并且包含 br 在适当的位置 但是 当我需要使用 HTML fromHtml
  • 如何将 sqlite3 模块与 Electron 一起使用?

    我想使用开发桌面应用程序electron使用通过 npm 使用命令安装的 sqlite3 包 npm install save sqlite3 但它在电子浏览器控制台中给出以下错误 Uncaught Error Cannot find mo