Änderungen: - Implementierung des neuen Routers für TaxiHighscore zur Verwaltung von Highscore-Daten. - Anpassung der Datenbankmodelle zur Unterstützung von TaxiHighscore-Associations. - Erweiterung der Vue-Komponenten zur Anzeige und Speicherung von Highscores im Taxi-Spiel. - Verbesserung der Statusanzeige im AppHeader zur besseren Benutzerinteraktion. Diese Anpassungen erweitern die Spielmechanik und Benutzererfahrung, indem sie die Verwaltung von Highscores integrieren und die Benutzeroberfläche optimieren.
67 lines
2.6 KiB
JavaScript
67 lines
2.6 KiB
JavaScript
import express from 'express';
|
|
import path from 'path';
|
|
import { fileURLToPath } from 'url';
|
|
import chatRouter from './routers/chatRouter.js';
|
|
import authRouter from './routers/authRouter.js';
|
|
import navigationRouter from './routers/navigationRouter.js';
|
|
import settingsRouter from './routers/settingsRouter.js';
|
|
import adminRouter from './routers/adminRouter.js';
|
|
import contactRouter from './routers/contactRouter.js';
|
|
import socialnetworkRouter from './routers/socialnetworkRouter.js';
|
|
import forumRouter from './routers/forumRouter.js';
|
|
import falukantRouter from './routers/falukantRouter.js';
|
|
import friendshipRouter from './routers/friendshipRouter.js';
|
|
import blogRouter from './routers/blogRouter.js';
|
|
import match3Router from './routers/match3Router.js';
|
|
import taxiRouter from './routers/taxiRouter.js';
|
|
import taxiMapRouter from './routers/taxiMapRouter.js';
|
|
import taxiHighscoreRouter from './routers/taxiHighscoreRouter.js';
|
|
import cors from 'cors';
|
|
import './jobs/sessionCleanup.js';
|
|
|
|
const __filename = fileURLToPath(import.meta.url);
|
|
const __dirname = path.dirname(__filename);
|
|
|
|
const app = express();
|
|
|
|
const corsOptions = {
|
|
origin: ['http://localhost:3000', 'http://localhost:5173', 'http://127.0.0.1:3000', 'http://127.0.0.1:5173'],
|
|
methods: ['GET', 'HEAD', 'PUT', 'PATCH', 'POST', 'DELETE'],
|
|
allowedHeaders: ['Content-Type', 'Authorization', 'userId', 'authCode'],
|
|
credentials: true,
|
|
preflightContinue: false,
|
|
optionsSuccessStatus: 204
|
|
};
|
|
|
|
app.use(cors(corsOptions));
|
|
app.use(express.json()); // To handle JSON request bodies
|
|
|
|
app.use('/api/chat', chatRouter);
|
|
app.use('/api/auth', authRouter);
|
|
app.use('/api/navigation', navigationRouter);
|
|
app.use('/api/settings', settingsRouter);
|
|
app.use('/api/admin', adminRouter);
|
|
app.use('/api/match3', match3Router);
|
|
app.use('/api/taxi', taxiRouter);
|
|
app.use('/api/taxi-maps', taxiMapRouter);
|
|
app.use('/api/taxi/highscore', taxiHighscoreRouter);
|
|
app.use('/images', express.static(path.join(__dirname, '../frontend/public/images')));
|
|
app.use('/api/contact', contactRouter);
|
|
app.use('/api/socialnetwork', socialnetworkRouter);
|
|
app.use('/api/forum', forumRouter);
|
|
app.use('/api/falukant', falukantRouter);
|
|
app.use('/api/friendships', friendshipRouter);
|
|
app.use('/api/blog', blogRouter);
|
|
|
|
// Serve frontend SPA for non-API routes to support history mode clean URLs
|
|
const frontendDir = path.join(__dirname, '../frontend');
|
|
app.use(express.static(path.join(frontendDir, 'dist')));
|
|
app.get(/^\/(?!api\/).*/, (req, res) => {
|
|
res.sendFile(path.join(frontendDir, 'dist', 'index.html'));
|
|
});
|
|
|
|
// Fallback 404 for unknown API routes
|
|
app.use('/api/*', (req, res) => res.status(404).send('404 Not Found'));
|
|
|
|
export default app;
|