const fs = require('fs'); const path = require('path'); const express = require('express'); const app = express(); const cors = require("cors"); app.use(cors()); const port = 6823; // Function to help determine asset paths when using pkg function getPublicPath() { if (process.pkg) { return path.join(path.dirname(process.execPath), 'web'); } else { return path.join(__dirname, 'web'); } } const publicDirectory = getPublicPath(); app.use(express.static(publicDirectory)); // Middleware to parse JSON request bodies app.use(express.json()); // Endpoint 1: Get address app.get('/read-config', (req, res) => { const filePath = path.join(path.dirname(process.execPath), 'ip_and_port.json'); if (fs.existsSync(filePath)) { const data = fs.readFileSync(filePath, 'utf8'); const address = JSON.parse(data); res.json(address); } else { res.json({}); } }); // Endpoint 2: Save address app.post('/update-config', (req, res) => { const { ip, port } = req.body; const ip_and_port = { ip, port }; const filePath = path.join(path.dirname(process.execPath), 'ip_and_port.json'); // Ensure the file exists and write data fs.writeFileSync(filePath, JSON.stringify(ip_and_port, null, 2), 'utf8'); res.json({ message: 'Address saved successfully' }); }); // Catch-all to serve index.html for SPA routing app.get('*', (req, res) => { res.sendFile(path.join(publicDirectory, 'index.html')); }); app.listen(port, () => { console.log(`Server is running on port ${port}`); });