Переглянути джерело

Add Express server entry point

k4be 7 годин тому
батько
коміт
03cbedbd06
1 змінених файлів з 47 додано та 0 видалено
  1. 47 0
      gpx-vis-backend/index.js

+ 47 - 0
gpx-vis-backend/index.js

@@ -0,0 +1,47 @@
+const express = require('express');
+const compression = require('compression');
+const cors = require('cors');
+const path = require('path');
+
+let config;
+try {
+  config = require('./config');
+} catch (e) {
+  console.error('Missing config.js - copy config.example.js to config.js and configure it.');
+  process.exit(1);
+}
+
+const { initDatabase } = require('./src/database');
+const authRoutes = require('./src/routes/auth');
+const dirRoutes = require('./src/routes/directories');
+const trackRoutes = require('./src/routes/tracks');
+const shareRoutes = require('./src/routes/share');
+const adminRoutes = require('./src/routes/admin');
+const statsRoutes = require('./src/routes/stats');
+
+const app = express();
+
+app.use(compression());
+app.use(cors({ origin: config.cors.origin, credentials: true }));
+app.use(express.json());
+
+app.use('/api/auth', authRoutes);
+app.use('/api/directories', dirRoutes);
+app.use('/api/tracks', trackRoutes);
+app.use('/api/share', shareRoutes);
+app.use('/api/admin', adminRoutes);
+app.use('/api/stats', statsRoutes);
+
+app.get('/health', (req, res) => res.json({ ok: true }));
+
+async function start() {
+  await initDatabase();
+  app.listen(config.port, () => {
+    console.log(`GPX-vis backend running on port ${config.port}`);
+  });
+}
+
+start().catch(err => {
+  console.error('Startup error:', err);
+  process.exit(1);
+});