const express = require('express'); const path = require('path'); const { PORT } = require('./config.js'); const app = express(); if (process.env.NODE_ENV === 'production') { // 🔧 URL rewrite 必須在所有路由之前執行(對應 Vite dev proxy 的行為) app.use((req, res, next) => { if (req.path.startsWith('/forge/api')) { req.url = req.url.replace(/^\/forge\/api/, '/api'); req.path = req.path.replace(/^\/forge\/api/, '/api'); } next(); }); const distPath = path.join(__dirname, 'wwwroot/ibms_ems/dist'); app.use(express.static(distPath)); } // 👉 API routes(在 rewrite 之後) app.use(require('./routes/auth.js')); if (process.env.NODE_ENV === 'production') { // Vue Router history mode (Express 5 catch-all syntax) app.get('/{*path}', (req, res) => { res.sendFile(path.join(__dirname, 'wwwroot/ibms_ems/dist', 'index.html')); }); } else { // 👉 Dev:只跑 API,不管前端 app.get('/', (req, res) => { res.send('API server running...'); }); } app.listen(PORT, () => { console.log(`Server listening on port ${PORT}...`); });