问题标签 [node-sqlite3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
119 浏览

node.js - SQLite3的nodejs接口中的回调问题

所以基本上应该在我的 SQL 命令完成后运行回调,但由于某种原因,回调永远不会执行。

这是我目前拥有的代码:

由于某种原因,这些命令在运行SQL 命令each, get, all时不起作用。SELECT * FROM FORWARDING

我究竟做错了什么?我不明白什么?

谢谢!

0 投票
1 回答
44 浏览

javascript - 数据在函数中使用之前发生变化

我一直在尝试为数据库中的每张过期票发送一封电子邮件。它的片段看起来像这样:

如您所见,我尝试使用匿名函数来防止每次调用中的数据发生变化,但它仍然不起作用。

我不知道我是否遗漏了什么。

0 投票
1 回答
6625 浏览

node.js - 何时使用 node-sqlite3 关闭数据库并表达?

我的问题是弄清楚何时关闭从 expressjs 后端到 sqlite 数据库的数据库连接。

我基本上想要实现的是在整个服务器正常运行期间打开并在服务器关闭时关闭的数据库连接。

我查看了这些威胁:

堆栈溢出:process.on('exit', callback)

Github 问题:App 没有 app.close()

但是,如果我用ctrl+c.

那么关于如何在服务器关闭时处理打开的数据库连接的“最佳实践”是什么?

0 投票
3 回答
2259 浏览

node.js - 使用 node-sqlite 将数据从一个数据库复制到另一个数据库 - 格式化“插入”语句

我正在编写一个小实用程序来将数据从一个 sqlite 数据库文件复制到另一个。这两个文件具有相同的表结构——这完全是关于将行从一个数据库移动到另一个数据库。

我现在的代码:

row这是一个 js 对象,其中包含每个表中的所有键控数据。我确信有一种简单的方法可以做到这一点,它不涉及转义字符串化数据。

0 投票
0 回答
5575 浏览

sqlite - 基本的 CRUD SQLite 3 如何与 VueJs 2

我对 SQlite3 和 Vue2 有问题

我正在使用Electron-Vue,并且我已经安装了 SQLite3 并成功地要求它(database.db)

使用这个:

所以下一步对我来说很难(基本的 Crud 系统)?

如何将这样的代码添加到 Vue 组件

只需一个简单的演示代码即可开始使用 VueJS2 组件和 SQlite3!

0 投票
1 回答
174 浏览

javascript - 在 sqlite statment.all 查询后回调无法运行

在以下函数中,我尝试在 sqlite3 中运行 statment.all 查询。但是该函数在没有运行回调函数的情况下结束。

即使经过彻底的调试和少量实验,我也无法确定问题所在。最奇怪的是,我有另一个类似的查询在代码中工作得很好。它也包含在问题中。

这是有问题的代码:

这是sql语句:var getQuestions = db.prepare("select * from t_questions order by random() limit ?");

我还有另一个类似的代码有效:

带有以下声明:

我可能提供的信息太多,或者太少。对此问题的反馈将不胜感激,因为这是我在该网站上的第一个问题。

0 投票
1 回答
5082 浏览

node.js - npm 包 sqlite3 的跨平台安装

问题

有没有一种方法可以node-sqlite3为我在我的应用程序中定位的多个平台安装,而无需为每个目标平台组合运行独立构建?

语境

在我的 Node.js 应用程序中,我有一个 npm 依赖项node-sqlite3GitHubnpm),其中包含针对不同平台的不同二进制文件(绑定)。

我的应用程序针对不同的平台,包括WindowsLinuxmacOSia32x64)以及现代 Node 版本:v6、v7 和 v8。该应用程序没有任何特定于平台的行为。

如果我使用 安装项目的依赖项npm installnode-sqlite3则仅为当前平台下载二进制文件(比如说win32, x64, Node v7.10)。

我还有一个 Travis CI 构建配置,用于持续部署和持续集成。我选择Ubuntu Trusty作为执行构建的主机。

作为构建过程的一部分,应用程序的依赖项由npm install. 在部署过程中,构建的应用程序及其依赖项被打包(存档)并上传到文件托管以供进一步分发。

问题

node-sqlite3没有为我需要的所有目标平台安装,而只是为当前正在使用的平台(用于开发或执行构建)安装。

可能的解决方案

我可以执行构建和部署:

  • 使用 Travis - 适用于 Linux 和 macOS
  • 使用 AppVeyor - 适用于 Windows

但这看起来像是一个很大的开销。正如我已经说过的,该应用程序没有任何特定于平台的行为。我相信node-sqlite3的供应商在我所针对的所有主要平台上都对其进行了测试。

0 投票
0 回答
459 浏览

webpack - Electron.remote.require('sqlite3') 查询性能慢 5 倍,回调慢 500 倍

我正在使用带 webpack 的 Electron 并尝试添加sqlite3到组合中。查看精简的测试项目

我遇到了两种可能的解决方案。

  1. 当我require('sqlite3')进入index.html并创建一个引用数据库的全局变量时,我可以使用全局变量从我的应用程序中查询数据库。性能还可以。

    问题:使用全局变量感觉很难看,我似乎无法配置 Karma 来使用这种场景。

    问题:我应该如何配置 Karma(同时尝试filescustomContextFile选项)来对这个场景进行单元测试?

  2. 当我remote.require('sqlite3')在我的应用程序中使用时,可以打开/创建数据库,但查询的性能会下降约 10 倍,结果回调的性能下降约 500 倍。(我想这是一个内存分配问题)

    问题:Sqlite 在性能方面毫无用处。

    问题:为什么会出现这种性能下降以及如何解决它以利用 sqlite 的所有优点?

顺便提一句。import { Database } from 'sqlite'与node-gyp 和 node-pre-gyp 一起使用时const db = new Database(),我无法解决抛出问题。

注意。我一直在使用sql.js(性能问题)和Lovefield(不灵活的 IndexedDB 存储)作为 sqlite3 的替代品。

0 投票
1 回答
8017 浏览

javascript - 如何使用 node-sqlite3 选择/获取所有行?

我正在尝试从我之前输入的 sqlite3 数据库中获取所有/多行数据,并确保它(数据)存在。作为db数据库对象,我的尝试如下所示:

上面总是返回带有 1 行数据的单个对象。

0 投票
2 回答
7747 浏览

node.js - 如何使 SQLite 与 Angular 4+、Electron 和 NodeJS 一起工作

我正在尝试使用以下方法构建一个小型桌面应用程序:

  • 角度 4+
  • 节点JS
  • 电子
  • SQLite3

NodeJS 将用于扫描本地用户硬盘并将找到的特定文件插入到 SQLite3 数据库中。

我检查了几十个文档和建议。他们中的大多数人建议使用 NodeJS express 框架并在 Angular 4+ -> Express -> SQLite3 之间创建层。

我想避免使用 express 框架,因为它将成为桌面应用程序并且根本不需要它。

我尝试了什么以及我做了什么:

我安装了:

作为我项目中的依赖项。

如果你想使用本机 nodejs 库,那么我已经读过你应该运行电子重建。所以我还安装了电子重建:

作为 devDependencies 并使用以下命令运行它:

重建 sqlite3 成功完成。

比我运行电子应用程序,我得到以下错误:

我卡在这里。我尝试了更多的东西,比如:

但我仍然遇到同样的错误。

任何建议或帮助将不胜感激。