【问题标题】:How to package express server inside electron app?如何在电子应用程序中打包快递服务器?
【发布时间】:2019-08-27 05:16:33
【问题描述】:

我目前正在使用 vue-cli-electron-builder 构建电子应用程序。 我有 mysql 本地数据库和快速服务器。

如何捆绑 express 服务器和 Electron 应用程序?

  • 我使用 express 服务器来获取和存储数据。
  • 用户登录凭据存储在 mysql 数据库中,登录表单调用 express 服务器。
  • 用户可以使用新凭据注册,该凭据再次调用本地快速服务器并存储在本地 mysql 数据库中。

如果我可以将所有内容打包在一个应用程序中并且仍然能够访问快速服务器,那就完美了。

运行电子应用程序和单独的快递服务器工作,但我想打包电子和快递,以便我只能使用电子应用程序执行操作。

【问题讨论】:

  • 看起来 Electron 已经可以做很多 Node 可以做的事情(几乎就像 Electron 在某种意义上类似于 Express)...github.com/SimulatedGREG/electron-vue/issues/… - 似乎有很多关于这个在线.. 这可能是您最好的选择 - 只需深入研究。

标签: javascript node.js express vue.js electron


【解决方案1】:

background.ts,你可以import { fork } from 'child_process'

并将server.js 放入/public/

import { fork } from 'child_process'

const isDevelopment = process.env.NODE_ENV !== 'production'

const serverProcess = fork(isDevelopment 
  ? path.resolve(__dirname, "../public/server.js")
  : path.resolve(__dirname, "server.js"))

try {
  serverProcess.stdout!.on("data", console.log)
  serverProcess.stderr!.on("data", console.error)
} catch(e) {}

我也曾使用vue-cli-electron-builder 完成过,但它与 Reveal.js 冲突,所以我手动完成了。

但是,关于 MySQL,您不应该将 .env 或凭据放入 Electron,因为人们可以对其进行逆向工程,需要单独的 Web 服务器。

【讨论】:

  • 在研究将 Express 和 Vue 捆绑在一个 Electron 应用程序中时遇到了这个 OP 的问题。但是,您提到的最后一部分是关于使用这种方法的安全考虑。您认为在 Electron 应用程序中一起运行 Express 还是单独运行服务器(如果在本地运行)是一个好主意?因为我很少看到任何关于这种方法的教程。
猜你喜欢
  • 2019-07-14
  • 2018-03-15
  • 2018-10-30
  • 1970-01-01
  • 2016-04-09
  • 2016-11-27
  • 2017-04-19
  • 2017-03-02
  • 1970-01-01
相关资源
最近更新 更多