1

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

我研究了诸如lokijs 之类的解决方案,虽然 lokijs 确实具有持久存储,但它存储在 Local Storage 或 IndexedDB 中。这意味着它通过浏览器存储在计算机上。解决此问题的一种方法是使用 JavaScript 以某种方式读取/写入文件,或者将数据库文件保存在与其他文件相同的目录中(通过 USB 进行移植)。有没有办法做到这一点?据我所知,没有办法实现这一点。

另一种解决方案是下载Chrome 的便携版本并创建一个 .bat 文件,以确保 Web 应用程序将使用便携 Chrome 打开。我认为(不太确定)便携式 Chrome 将在会话之间保留本地存储/索引数据库数据。但是,这种方法很笨重,我宁愿不依赖它。

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

感谢您的阅读,我将不胜感激。

4

2 回答 2

2

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

于 2016-06-07T10:42:36.073 回答
0

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

于 2016-06-07T10:49:58.327 回答