javascript - 使用 Javascript 在浏览器中直接读取 Sqlite3 的最佳方法是什么?

标签 javascript sqlite

对于我们的一个 Insights 平台,我们计划在后台生成摘要 SQLite3 数据库,并让它作为图表呈现在浏览器上。目前,我们打算使用一个服务器端端点来满足数据需求。

我们希望通过完全消除服务器端端点来进一步优化这一点。我们可以(从安全 Angular )直接在 S3 上公开 SQLite3 并让 javascript 模块读取和生成图表。

SQLite3 文件应该相当小——可能有 4-6 列和 10-500 行数据,并且所有文件都只包含一个表。测试运行表明文件大小小于 15KB。 我们不打算在浏览器上编写或操作 SQLite3。 我们不需要将其作为 WebSQL 或 IndexedDB 形式缓存在浏览器上,但如果需要的话,我们可以使用它们。

从我的网络搜索中,我们无法找到可以读取 SQLite3 文件并查询结果的 Javascript 库。如果您知道任何可以执行此操作的 JavaScript 库,请告诉我们。

另一方面,如果您认为我们出于任何原因不应该这样做,那么也请将它们作为评论/答案提出来,因为这是我们第一次尝试并且看起来有点过时-开箱即用,欢迎提供反馈!

最佳答案

有一个名为 sql.js 的 javascript 库那可以做你想要的。在你的情况下,你会像那样使用它

const SQL = await initSqlJs(options);
const fetched = await fetch("/path/to/database.sqlite");
const buf = await fetched.arrayBuffer();
const db = new SQL.Database(new Uint8Array(buf));
const contents = db.exec("SELECT * FROM my_table");
// contents is now [{columns:['col1','col2',...], values:[[first row], [second row], ...]}]

请参阅 sql-js.github.io/sql.js/documentation/ 上的文档

关于javascript - 使用 Javascript 在浏览器中直接读取 Sqlite3 的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14764707/

相关文章:

javascript - 将元素移动到前面而不破坏事件

java - 多线程 Java 应用程序中的 SQLite

javascript - Node.js 的 SQLite3 教程和需要的代码示例说明

java - 执行末尾添加空格且不带空格的删除查询

javascript - 包装 CSS3 slider

javascript - 只比较对象数组中的一个值 Javascript(无排序)

sql - SQLite选择多组行

sqlite - 在SQLite中无法连接和过滤数据

php - 添加多个下拉列表的总和

javascript - Node.js 和 Node.js REPL 之间的差异