MySQL 捆绑在 NPM 应用程序中
Posted
技术标签:
【中文标题】MySQL 捆绑在 NPM 应用程序中【英文标题】:MySQL bundled within an NPM app 【发布时间】:2017-06-07 12:45:17 【问题描述】:这个想法是将 mysql 数据库捆绑在 npm 应用程序中。这背后的原因是因为该应用程序旨在作为使用 Electron 构建的独立桌面应用程序运行,当然还有许多其他模块。
到目前为止,我对 MySQL 数据库模块的所有搜索都只找到了驱动程序。所有其他教程都讨论了典型的 Web 应用程序设置,其中 MySQL 数据库安装在服务器中。另一篇文章的评论讨论了如何在服务器中设置 MySQL db,并刚刚提到 if it's a desktop app, it's a whole other issue。我想知道是否有办法做到这一点,或者根本不可能。
【问题讨论】:
所以您不仅使用完整的服务器+浏览器+运行时来制作应用程序,现在您还使用 MySQL 而不是使用 Sqlite3 或更适合应用程序的东西,而不是试图粗鲁或一些东西,但你的软件是一个肥大的庞然大物 是的,我也想到了,所以我决定使用 Lovefield。 【参考方案1】:经过进一步研究(并在初始设计中做出了很多妥协),我决定使用 Google 的 Lovefield。它与我自 1 以来一直在寻找的最接近。它嵌入在浏览器中,以及 2。结构化查询是您获取数据的方式。仍然希望在 Electron 应用程序中存在嵌入式 MySQL 数据库的解决方案。
【讨论】:
MySql 或 MariaDB 并不适合在进程内运行,这就是 Sqlite 和 Redis 的用途,所以我非常怀疑有人会费心让 MySQL 在浏览器中运行 实际上,我当时考虑将 MySQL 的安装程序脚本放入应用程序中,因此从技术上讲,它仍然不在应用程序中。但是我不知道从哪里开始,所以我求助于捆绑 MySQL db 的想法。事实证明这根本不是一个好主意。我想知道嵌入式类型的数据库是否更好? 这样更好,专门为这个用例制作了一个嵌入式数据库 嗯,很好。感谢您的见解。【参考方案2】:过去的某个时候,我设法在 node-webkit (https://nwjs.io/) 中嵌入了完整的 Drupal CMS 安装。它被配置为将所有已知的 php 文件代理到嵌入式 PHP 安装。然后我们简单地将 sql 转储文件导入到 sqlite 中,整个事情运行良好。您可能想尝试一下。
正如@jd-hernandes 指出的那样,sqlite 可能是您正在寻找的答案。
【讨论】:
以上是关于MySQL 捆绑在 NPM 应用程序中的主要内容,如果未能解决你的问题,请参考以下文章
从 npm 本地导入 ES 模块依赖项,无需捆绑/转译第一方源
AWS Elastic Beanstalk - 如何使用 npm 和 webpack 构建捆绑 JS
如何使用 Webpack 将供应商 CSS 文件捆绑到 React 应用程序中?