# Lokaler Reverse Proxy Server Dieser Proxy-Server umgeht CORS-Probleme während der Entwicklung, indem er Anfragen an die PTV Geocoding API weiterleitet. ## 🚀 Installation & Start ### 1. Dependencies installieren (nur Node.js Standard-Module, keine Installation nötig) Der Server verwendet nur Node.js Built-in Module (`http`, `https`, `url`), daher ist kein `npm install` erforderlich. ### 2. Server starten ```bash cd proxy-server node server.js ``` Oder mit npm: ```bash npm start ``` Der Server läuft dann auf `http://localhost:3000` ## 📡 API Verwendung **Endpoint:** ``` GET http://localhost:3000/?lat={latitude}&lon={longitude}&apiKey={ptv_api_key} ``` **Beispiel:** ``` http://localhost:3000/?lat=47.9385165&lon=13.762887&apiKey=YOUR_API_KEY ``` **Response (Erfolg):** ```json { "success": true, "location": "Hauptstraße 123, 5020 Salzburg", "coordinates": { "lat": 47.9385165, "lon": 13.762887 }, "rawData": { ... } } ``` **Response (Fehler):** ```json { "success": false, "error": "Error message", "fallbackLocation": "Lat: 47.938517, Lon: 13.762887" } ``` ## 🔧 In Flutter App verwenden Der Flutter Code wurde bereits angepasst, um den lokalen Proxy zu verwenden. 1. Starten Sie den Proxy-Server: ```bash cd proxy-server node server.js ``` 2. Starten Sie die Flutter App: ```bash flutter run -d chrome ``` 3. Die App verwendet automatisch `http://localhost:3000` wenn verfügbar. ## ⚠️ Wichtige Hinweise - **Nur für Entwicklung!** Dieser Server ist nicht für Produktionsumgebungen geeignet. - Der Server muss laufen, während Sie die Flutter App im Development-Modus verwenden. - Für Produktion: Verwenden Sie die Appwrite Function (siehe [DEPLOYMENT.md](../DEPLOYMENT.md)) ## 🛑 Server stoppen Drücken Sie `Strg+C` im Terminal, wo der Server läuft. ## 🐛 Troubleshooting ### Port bereits belegt **Problem:** `Error: listen EADDRINUSE: address already in use :::3000` **Lösung:** 1. Anderen Port verwenden: Ändern Sie `PORT = 3000` in `server.js` 2. Oder den bestehenden Prozess beenden: ```bash # Port finden lsof -i :3000 # Prozess beenden kill -9 PID ``` ### Flutter App findet Proxy nicht **Problem:** "Failed to fetch" oder Connection Error **Lösung:** 1. Prüfen Sie ob der Proxy läuft (`http://localhost:3000` im Browser öffnen) 2. Stellen Sie sicher, dass Port 3000 korrekt ist 3. Prüfen Sie die Browser Console für Fehler ### CORS immer noch ein Problem **Problem:** CORS-Fehler trotz Proxy **Lösung:** 1. Stellen Sie sicher, dass die Flutter App `localhost:3000` verwendet 2. Browser-Cache leeren 3. Entwickler-Tools → Network → "Disable cache" aktivieren