如何在电子应用程序内部打包快递服务器? [英] How to package express server inside electron app?

查看:48
本文介绍了如何在电子应用程序内部打包快递服务器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前正在使用 vue-cli-electron-builder .我有mysql本地数据库和快速服务器.

I am currently building electron app with vue-cli-electron-builder . I have mysql local database and express server.

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

How do I bundle express server and Electron app?

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

如果我可以将所有内容打包到一个应用程序中并且仍然能够访问Express Server,那将是完美的选择.

It would be perfect if I could package everything inside one app and still be able to access express server.

正在运行的电子应用程序和单独的快递服务器都可以工作,但是我想打包电子和快递,以便我只能通过电子应用程序执行操作.

Running electron app and the separate express server works but I want to package both electron and express so that I can perform actions only with electron app.

推荐答案

background.ts 中,您可以从'child_process'导入{fork}.

In background.ts, you can 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冲突,所以我手动完成了操作.

I have done it with vue-cli-electron-builder at some time as well, but it conflicts with Reveal.js, so I did it manually.

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

However, regarding MySQL, you shouldn't put .env or credentials in Electron, as people can reverse engineer it, needing a separate web server.

这篇关于如何在电子应用程序内部打包快递服务器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆