#javascript #node.js #express #vue.js #electron
#javascript #node.js #экспресс #vue.js #electron
Вопрос:
В настоящее время я создаю приложение electron с помощью vue-cli-electron-builder. У меня есть локальная база данных mysql и экспресс-сервер.
Как мне связать экспресс-сервер и приложение Electron?
- Я использовал экспресс-сервер для выборки и хранения данных.
- Учетные данные пользователя хранятся в базе данных mysql, форма входа вызывает экспресс-сервер.
- Пользователь может зарегистрироваться с новыми учетными данными, которые снова вызывают локальный экспресс-сервер и сохраняются в локальной базе данных mysql.
Было бы идеально, если бы я мог упаковать все внутри одного приложения и при этом иметь доступ к Express Server.
Запуск приложения electron и отдельного экспресс-сервера работает, но я хочу упаковать как electron, так и express, чтобы я мог выполнять действия только с приложением electron.
Комментарии:
1. Похоже, 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 , поэтому я сделал это вручную.
Однако, что касается MySQL, вам не следует вводить .env
или учетные данные в Electron, поскольку люди могут перепроектировать его, нуждаясь в отдельном веб-сервере.
Комментарии:
1. Наткнулся на вопрос этого OP во время исследования возможности объединения Express и Vue в приложении Electron вместе. Однако в последней части вы упомянули о соображениях безопасности при использовании этого подхода. Как вы думаете, это хорошая идея запускать Express вместе в приложении Electron или просто запускать сервер отдельно (если запускать локально)? Потому что я редко вижу какие-либо руководства, в которых говорится об этом подходе.