离线便携式 Web 应用程序,Javascript。如何跨计算机获取持久数据库?

Offline portable web app, Javascript. How to get a persistent database across computers?

我有一个用于 JavaScript 的 PC 离线网络应用程序,我想向其中添加一个数据库。问题是它需要跨多台计算机(通过 USB)持久存储数据。所以我想找到一种方法将这些数据存储在 USB 而不是计算机的硬盘上。

我研究了 lokijs 等解决方案,虽然 lokijs 确实具有持久存储,但它存储在本地存储或 IndexedDB 中。这意味着它通过浏览器存储在计算机上。解决这个问题的一种方法是以某种方式 read/write 文件与 JavaScript 或将数据库文件保存在与其他文件相同的目录中(为了通过 USB 的可移植性)。有没有办法做到这一点?据我所知,没有办法实现这一目标。

另一个解决方案是下载 portable version of Chrome 并创建一个 .bat 文件以确保 Web 应用程序将使用便携式 Chrome 打开。我认为(不太确定)便携式 Chrome 将在会话之间保留本地 Storage/IndexedDB 数据。不过这个方法比较笨重,我宁愿不依赖这个。

那么,有没有其他方法可以解决这个问题?或者是否有另一个 JavaScript 数据库可以在本地存储和检索数据库,以通过 USB 实现跨多台计算机的持久数据存储。

感谢阅读,如有任何答案,我将不胜感激。

Java脚本无法访问您的磁盘 - 出于安全原因。您不能 read/write 使用网络应用程序到本地驱动器,否则恶意软件会更容易传播。这就是为什么像 lokijs 这样的解决方案使用浏览器内存储。如果您想要一个可以从 USB 运行 移动存储的离线应用程序,我会考虑使用不同的技术/编程语言进行重写。如果它也需要跨平台,Java 可能是你最好的选择。

基本上,您需要一个使用 Web 技术构建的可移植的胖客户端应用程序。有多种解决方案。我建议使用 NodeWebKit 或类似的东西(JavaFX 还具有 JavaScript 的网页渲染功能)。