Have a default port and only switch to a random one if that's taken

This commit is contained in:
kolaente 2020-10-17 20:30:59 +02:00
parent 4d96f15583
commit e122ed329b
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
1 changed files with 19 additions and 9 deletions

28
main.js
View File

@ -2,6 +2,7 @@ const {app, BrowserWindow, shell} = require('electron')
const path = require('path') const path = require('path')
const express = require('express') const express = require('express')
const eApp = express() const eApp = express()
const portInUse = require('./portInUse.js')
const frontendPath = 'frontend/' const frontendPath = 'frontend/'
@ -24,15 +25,24 @@ function createWindow() {
// Hide the toolbar // Hide the toolbar
mainWindow.setMenuBarVisibility(false) mainWindow.setMenuBarVisibility(false)
// Start a local express server to serve static files // We try to use the same port every time and only use a different one if that does not succeed.
eApp.use(express.static(path.join(__dirname, frontendPath))) let port = 45735
// Handle urls set by the frontend portInUse(port, used => {
eApp.get('*', (request, response, next) => { if(used) {
response.sendFile(`${__dirname}/${frontendPath}index.html`); console.log(`Port ${port} already used, switching to a random one`)
}) port = 0 // This lets express choose a random port
const server = eApp.listen(0, '127.0.0.1', () => { }
console.log(`Server started on port ${server.address().port}`)
mainWindow.loadURL(`http://127.0.0.1:${server.address().port}`) // Start a local express server to serve static files
eApp.use(express.static(path.join(__dirname, frontendPath)))
// Handle urls set by the frontend
eApp.get('*', (request, response, next) => {
response.sendFile(`${__dirname}/${frontendPath}index.html`);
})
const server = eApp.listen(port, '127.0.0.1', () => {
console.log(`Server started on port ${server.address().port}`)
mainWindow.loadURL(`http://127.0.0.1:${server.address().port}`)
})
}) })
} }