2.6 KiB
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
cd proxy-server
node server.js
Oder mit npm:
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):
{
"success": true,
"location": "Hauptstraße 123, 5020 Salzburg",
"coordinates": {
"lat": 47.9385165,
"lon": 13.762887
},
"rawData": { ... }
}
Response (Fehler):
{
"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.
-
Starten Sie den Proxy-Server:
cd proxy-server node server.js -
Starten Sie die Flutter App:
flutter run -d chrome -
Die App verwendet automatisch
http://localhost:3000wenn 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)
🛑 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:
- Anderen Port verwenden: Ändern Sie
PORT = 3000inserver.js - Oder den bestehenden Prozess beenden:
# Port finden lsof -i :3000 # Prozess beenden kill -9 PID
Flutter App findet Proxy nicht
Problem: "Failed to fetch" oder Connection Error
Lösung:
- Prüfen Sie ob der Proxy läuft (
http://localhost:3000im Browser öffnen) - Stellen Sie sicher, dass Port 3000 korrekt ist
- Prüfen Sie die Browser Console für Fehler
CORS immer noch ein Problem
Problem: CORS-Fehler trotz Proxy
Lösung:
- Stellen Sie sicher, dass die Flutter App
localhost:3000verwendet - Browser-Cache leeren
- Entwickler-Tools → Network → "Disable cache" aktivieren