用 Electron 嵌入 Mongodb

Roh*_*hit 5 electron electron-builder

我将 MongoDB 源代码保存在电子源代码中,并使用以下命令运行 MongoDB:

const app = require('electron').app;
const child_process = require('child_process');
const dbInstanceDir = app.getAppPath();
const startMongo = dbInstanceDir + mongodb/bin/mongod --dbpath mydbpath --port 27017 --logpath mylogfile

child_process.exec(startMongo, (error, stdout, stderr) => {
});
Run Code Online (Sandbox Code Playgroud)

以上命令在开发时有效,但在捆绑后无效。我正在使用电子生成器制作捆绑包。MongoDB 源代码位于根级别。

在此处输入图片说明

tre*_*mor 5

据我所知,MongoDB不能与Electron一起打包,必须单独安装。引用自该网站: https: //www.techiediaries.com/electron-data-persistence/

使用 MongoDB 的优点和缺点

对于将 MongoDB 与 Electron 应用程序结合使用的优点:

  • 适用于所有 Electron 支持的平台,例如 Windows、Linux 和 MAC。所以它并没有限制Electron的跨平台特性。

  • 可以轻松安装并与 Electron 集成。

也有一些缺点:

  • 无法与 Electron 捆绑在一起,因此最终用户需要将其与您的应用程序分开安装。
  • 对于小型应用程序来说太过分了。

相反,我可以建议使用 NeDB - https://github.com/louischatriot/nedb

NeDB 使用 MongoDB API 的子集,因此您不需要更改太多读取和写入代码。如果您继续阅读我上面发布的链接,它还涵盖了在 Electron 应用程序中使用 NeDB。

还有其他几个选项可以嵌入 Electron,例如 NeDB(Pouch、Loki.js),它们可能更适合您的需求。


** 更新 **

您也许可以使用这个: https: //github.com/nosqlclient/nosqlclient- Electron

更多信息请访问网站: https: //www.nosqlclient.com/

看起来它是一个完全支持 MongoDB 的 Electron 替代应用程序,使用 Electron?

  • 我想知道为什么我被否决了 - 这个答案是正确的 - 你不能用 Electron 打包 MongoDB (4认同)
  • 我已经用过NeDB了。NeDB 的主要问题是它将整个数据库加载到内存中,如果内存耗尽,系统将挂起,这就是我尝试使用 MongoDB 的原因 (3认同)
  • @Rohit - 用可能的替代方案更新了我的答案。另外,关于 NeDB - 内存耗尽的数据库有多大?您是否考虑过将其分解为多个数据库? (2认同)
  • @fedeteka 请参阅作者的免责声明 https://github.com/louischatriot/nedb#pull-requests (2认同)