如何在电子应用程序中打包快递服务器?

Posted

技术标签:

【中文标题】如何在电子应用程序中打包快递服务器?【英文标题】: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/… - 似乎有很多关于这个在线.. 这可能是您最好的选择 - 只需深入研究。 【参考方案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 冲突,所以我手动完成了。

background.ts server.js

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

【讨论】:

在研究将 Express 和 Vue 捆绑在一个 Electron 应用程序中时遇到了这个 OP 的问题。但是,您提到的最后一部分是关于使用这种方法的安全考虑。您认为在 Electron 应用程序中一起运行 Express 还是单独运行服务器(如果在本地运行)是一个好主意?因为我很少看到任何关于这种方法的教程。

以上是关于如何在电子应用程序中打包快递服务器?的主要内容,如果未能解决你的问题,请参考以下文章

电子邮件介绍

顺丰电子面单api接口怎么接入?

电子面单打印机如何使用

如何在我的电子应用程序中打包 knex 以使用 sqlite3

常用电子面单接口API及对接攻略(快递鸟菜鸟顺丰)

如何使用电子生成器将 v8 快照打包到 exe 中?