什么'这是使用Javascript直接在浏览器中读取Sqlite3的最佳方式
What's the best way to read Sqlite3 directly in Browser using Javascript?
对于我们的一个Insights平台,我们计划在后台生成摘要SQLite3数据库,并将其在浏览器上呈现为图表。目前,我们打算使用一个服务器端端点来满足数据需求。
我们希望通过完全消除服务器端端点来进一步优化这一点。从安全角度来看,我们可以直接在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/
我不能说出最好的,但有一个:自己写一个JavaScriptSQLite阅读器库这将是一项乏味的任务,但我相信它是可以完成的。一些很酷的人做了pdf.js,这是一个pdf文件的JavaScript渲染器,它也是二进制BLOB,就像SQLite文件一样。
您很可能会从FileReader API开始遍历SQLite文件,然后创建一些内容的内存表示,您的图表工具可以使用这些内容。
免责声明:你可能想按照其他人的建议,用另一个解决方案来解决你最初的问题,但这回答了你的问题
- 当读取文件时,浏览器打开良好,但它是空白浏览器
- 使用 JQuery 读取二进制文件的浏览器之间的不同行为
- 在不打开对话框的情况下读取本地文件(在浏览器中)
- 通过网络浏览器从 URL javascript 读取文件
- Java从浏览器读取字节流不同的正文长度
- 从客户端读取浏览器历史记录
- 谷歌浏览器说无法读取未定义的属性“计算器” - 计算器是函数名称
- 从Javascript(多浏览器)读取二进制文件
- 读取使用浏览器 Javascript 忽略的文件
- 浏览器如何读取JavaScripts,它应该排在第一位(设置在顶部):事件?功能?或子函数
- 无法读取 null 的属性“toUpperCase”(谷歌浏览器)
- 使用pyjs:web浏览器获胜;t从txt文件中读取数据
- 无法使用document.cookie在UIWebview浏览器中读取cookie
- 如何从浏览器中读取和写入excel文件,然后将值更新到数据库
- 南?为什么浏览器不会将其读取为数字
- 正在从浏览器中的udp端口读取
- 是否可以在浏览器中使用javascript从sd卡读取文件系统
- 浏览器是读取/存储Javascript文件中的所有内容,还是仅读取/存储它们需要的内容
- 使用客户端Internet从客户端浏览器读取返回Xml格式数据的Url,而不向服务器发送请求
- 正在从会话中存储的web浏览器读取身份验证信息