Web-basierte App zur Verwaltung von Praxisterminen, ermöglicht Ärzten und medizinischem Personal das einfache Planen und Koordinieren von Patiententerminen. Eine ähnliche Implementierung kann unter MediBooker API eingesehen werden.
Before using the MediBooker-API, ensure you have Node.js and npm installed. To set up the project, follow these steps:
https://auth-db972.hstgr.io/index.php?db=u252525807_T_verwaltung
npm install
npm start
To manage the database, use the following commands from the command line:
node drop-db.js
node sync-db.js
node fakedata.js
node swagger.js
vercel dev
vercel --prod
Diese Anwendung verwendet WebSockets, um Echtzeitkommunikation zwischen dem Server und den Clients zu ermöglichen. Die WebSocket-Implementierung erfolgt mithilfe von Socket.IO, das sowohl den Server- als auch den Client-Teil abdeckt.
Die WebSocket-Server-Initialisierung und Ereignisbehandlung erfolgt in separaten Dateien im Verzeichnis services/websockets
.
- websocketInit.js: Diese Datei initialisiert den WebSocket-Server durch die Funktion
initializeWebSocketServer
, die in der Hauptanwendungsdatei (index.js
) aufgerufen wird.
- websocketHandlers.js: Diese Datei behandelt die verschiedenen WebSocket-Ereignisse wie Verbindung, Nachricht und Trennung. Die Funktion
handleConnection
wird aufgerufen, wenn ein Client eine Verbindung herstellt.
- websocketNotify.js: Diese Datei enthält die Funktion
notifyClients
, um Benachrichtigungen an die verbundenen Clients zu senden. DiesetIo
-Funktion wird verwendet, um dieio
-Instanz zu setzen, die für die Benachrichtigung der Clients benötigt wird.
In der Hauptanwendungsdatei (index.js
) wird der WebSocket-Server gestartet, nachdem der HTTP-Server erstellt wurde. Die io
-Instanz wird gesetzt, um Benachrichtigungen an die Clients zu ermöglichen.
Der WebSocket-Server kann auf spezifische Ereignisse hören und entsprechende Aktionen ausführen. Beispielsweise können bei Änderungen in der Datenbank (z.B. bei der Erstellung, Aktualisierung oder Löschung von Reservierungen) Benachrichtigungen an alle verbundenen Clients gesendet werden.
- Echtzeitkommunikation: Änderungen werden sofort an alle verbundenen Clients gesendet, wodurch eine Echtzeitkommunikation ermöglicht wird.
- Effizienz: WebSockets sind effizienter als wiederholte HTTP-Anfragen, da sie eine dauerhafte Verbindung zwischen Client und Server ermöglichen.
- Benutzererfahrung: Echtzeit-Updates verbessern die Benutzererfahrung erheblich, indem sie sicherstellen, dass die Benutzer immer aktuelle Informationen sehen.
Mit dieser Integration von WebSockets stellt die MediBooker-API sicher, dass alle relevanten Informationen in Echtzeit an die Benutzer weitergegeben werden, was die Effizienz und Benutzererfahrung der Anwendung erheblich verbessert.
Diese Anwendung verwendet eine zentrale Fehlerbehandlungsmiddleware, um sicherzustellen, dass alle Fehler konsistent verarbeitet und protokolliert werden. Dies hilft, die Anwendung robuster und wartbarer zu machen.
Die Fehler-Middleware befindet sich im Verzeichnis middlewares und heißt errorHandler.js. Diese Middleware fängt alle Fehler ab, die in der Anwendung auftreten, protokolliert den Fehlerstack und sendet eine konsistente JSON-Antwort an den Client.
Protokollierung: Die Middleware protokolliert den Fehlerstack zur Diagnose. Antwort: Eine JSON-Antwort mit dem Fehlerstatus und der Fehlermeldung wird an den Client gesendet. Umgebung: Im Entwicklungsmodus (NODE_ENV=development) werden zusätzliche Fehlerinformationen gesendet.
Die Fehler-Middleware wird in der Hauptanwendungsdatei (index.js) eingebunden. Sie wird als letzte Middleware in der Middleware-Kette verwendet, um sicherzustellen, dass alle Fehler, die während der Verarbeitung von Anfragen auftreten, abgefangen werden.
In den Controllern und Routen wird sichergestellt, dass alle auftretenden Fehler an die Fehler-Middleware weitergegeben werden. Dies geschieht durch Aufrufen der next-Funktion mit dem Fehlerobjekt.
Konsistenz: Alle Fehler werden auf die gleiche Weise behandelt und protokolliert. Wartbarkeit: Änderungen am Fehlerbehandlungsverhalten müssen nur an einer Stelle vorgenommen werden. Sicherheit: Im Produktionsmodus werden keine sensiblen Fehlerinformationen an den Client gesendet. Diagnose: Im Entwicklungsmodus werden detaillierte Fehlerinformationen bereitgestellt, die bei der Diagnose und Behebung von Problemen helfen.