Einrichtung des Backends
In diesem Abschnitt lernen Sie, wie Sie das Backend für die Produktverwaltungs-App einrichten. Dies ist der erste Schritt, bevor wir mit der Entwicklung des React-Frontends beginnen können.
Übersicht
Abschnitt betitelt „Übersicht“Für unsere Anwendung verwenden wir ein vorgefertigtes Backend, das mit Node.js, Express und MongoDB entwickelt wurde. Es bietet alle notwendigen API-Endpunkte für die Verwaltung von Produkten und die Benutzerauthentifizierung.
1. Docker Desktop installieren
Abschnitt betitelt „1. Docker Desktop installieren“
Für das Backend benötigen wir Docker, um MongoDB und die Express-Anwendung auszuführen:
-
Falls Docker noch nicht installiert ist, laden Sie Docker Desktop für Ihr Betriebssystem herunter:
-
Folgen Sie den Installationsanweisungen für Ihr Betriebssystem.
-
Nach der Installation: Starten Sie Docker Desktop und überprüfen Sie, ob es ordnungsgemäss ausgeführt wird.
Hinweis: Manchmal ist nach der Installation und beim ersten Start des Rechners ein Neustart nötig.
2. Git Repository klonen
Abschnitt betitelt „2. Git Repository klonen“Sobald Docker einsatzbereit ist, benötigen Sie das Backend-Repository. Öffnen Sie Ihr Terminal und führen Sie folgenden Befehl aus:
git clone https://gitlab.com/hagmann/product-management-backend.gitNavigieren Sie anschliessend in das Verzeichnis:
cd product-management-backend3. Umgebungsvariablen einrichten
Abschnitt betitelt „3. Umgebungsvariablen einrichten“Das Backend benötigt eine .env-Datei für Konfigurationseinstellungen. Im Repository finden Sie eine Beispieldatei .env.sample:
- Kopieren Sie die Beispieldatei:
cp .env.sample .env- Die generierte
.env-Datei enthält bereits die notwendigen Werte für die Entwicklung. Für unsere Lernzwecke können Sie diese unverändert verwenden.
4. Abhängigkeiten installieren (npm install)
Abschnitt betitelt „4. Abhängigkeiten installieren (npm install)“Falls Sie das Backend lokal (ohne Docker) starten oder anpassen möchten, müssen Sie zuerst die Node.js-Abhängigkeiten installieren:
npm installDamit wird der node_modules-Ordner mit allen benötigten Paketen erstellt.
5. Backend lokal starten (npm run dev)
Abschnitt betitelt „5. Backend lokal starten (npm run dev)“Sie können das Backend entweder lokal in der Entwicklungsumgebung starten oder über Docker laufen lassen (siehe unten).
Mit folgendem Befehl starten Sie das Backend lokal im Entwicklungsmodus (Hot-Reload):
npm run devDas Backend ist dann unter http://localhost:4000 erreichbar.
Hinweis: Wenn Sie Docker für die Datenbank verwenden, läuft MongoDB innerhalb des Containers. Stellen Sie dann sicher, dass die
MONGODB_URIin Ihrer.env-Datei korrekt gesetzt ist (meist genügt der Standardwert aus der Beispieldatei).
6. Backend über Docker Compose starten
Abschnitt betitelt „6. Backend über Docker Compose starten“Mit Docker Compose können Sie alle benötigten Dienste (MongoDB und das Express-Backend) mit einem einzigen Befehl starten:
docker-compose up -dDer Parameter -d sorgt dafür, dass die Container im Hintergrund ausgeführt werden.
Nach dem Start sollten Sie folgende Ports verwenden können:
- MongoDB-Datenbank auf Port 27017
- Express Backend auf Port 4000
7. Überprüfen der Backend-Installation
Abschnitt betitelt „7. Überprüfen der Backend-Installation“Um zu prüfen, ob das Backend richtig läuft, können Sie im Browser oder mit einem Tool wie Postman den Health-Endpoint aufrufen:
GET http://localhost:4000/healthWenn alles korrekt funktioniert, sollten Sie eine Antwort wie diese erhalten:
{ "status": "ok", "message": "Server is running"}Hinweise zur Fehlerbehebung
Abschnitt betitelt „Hinweise zur Fehlerbehebung“- Port bereits in Verwendung: Falls Sie eine Fehlermeldung erhalten, dass Port 4000 oder 27017 bereits verwendet wird, stellen Sie sicher, dass keine anderen Anwendungen diese Ports nutzen.
- Docker-Probleme: Führen Sie
docker-compose downaus und starten Sie dann erneut mitdocker-compose up -d. - Logs anzeigen: Mit
docker-compose logskönnen Sie die Logs des Backends anzeigen, um mögliche Fehler zu identifizieren.
Was passiert beim ersten Start?
Abschnitt betitelt „Was passiert beim ersten Start?“Beim ersten Start des Containers wird die mongo-init.js-Datei ausgeführt. Sie erledigt für Sie:
- Erstellen der Datenbank
mydatabase - Anlegen einer Sammlung für Produkte und das Befüllen mit Beispieldaten
- Anlegen einer Sammlung für Benutzer und Erstellen eines Testbenutzers:
- E-Mail: user@example.com
- Passwort: password
Diese Daten stehen Ihnen sofort zu Entwicklungszwecken zur Verfügung.
Backend bei Bedarf beenden
Abschnitt betitelt „Backend bei Bedarf beenden“Wenn Sie das Backend beenden möchten, führen Sie folgenden Befehl aus:
docker-compose downDadurch werden alle Container gestoppt und die verwendeten Ports freigegeben.
Zusammenfassung
Abschnitt betitelt „Zusammenfassung“Sie haben das Backend für die Produktverwaltungs-App erfolgreich eingerichtet. Die Docker-Container für MongoDB und das Express-Backend laufen nun, und alle notwendigen Anfangsdaten wurden erstellt. Im nächsten Schritt beginnen wir mit der Einrichtung des React-Frontends, das mit diesem Backend kommunizieren wird.