ok, danke! D.h. ich schreibe eine Route in meiner server.js Datei welche ein Json entgegennimmt und an das Datenbankobjekt weiterleitet. Das Datenbankobjekt schreibe ich dann so, dass es die SQL Statments passend zum JSON zusammenbaut. Wenn ich irgendwann zuviele Methoden brauche zerteile ich das DB Objekt in Subklassen und Nutze gegebenenfalls Vererbung.
Ich habe vor den Code meiner Webseite step by step aufzuräumen. Ich habe dafür folgende Idee:
-
Start der Webseite wie gehabt per node server.js
-
In der Datei server.js wird ein Objekt MainServer initialisiert. Dieses Objekt initialisiert ein Objekt Datenbankmanager.
-
Jede Statische HTML Seite bekommt eine eigene Route. Die Routen aller Statischen HTML Seiten verweisen auf eine Methode des MainServer objekts, nämlich auf die Methode "statischesHtml(pfadZurHtmlDatei)". Diese Methode schmeißt dann die Entsprechenden HTML Seiten mit sendfile.
-
Es gibt eine Route für alle Datenbank Zugriffe, diese Route verweist auf eine Methode des MainServer Objekts. Diese methode bekommt ein passend Konfiguriertes Json und reagiet entsprechend darauf.
Damit stelle ich dann auch sicher, dass nur eine Referenz eines Objekts alle Datenbank Sachen macht, d.h. ich habe immernur eine Connection offen.
Frage:
Meine Seite erstellt SVG's anhand bestimmter Parameter. D.h. die Url
webseite/svg?daten=2&farbe=weiss
führt stets zum gleichen SVG. Geht jetzt ein User mit dieser URl auf meine Unterseite /svg, so hole ich mir seine Parameter derzeit Clientseitig um Clientseitig das SVG zu erstellen. D.h. der Workflow wäre
Route wird angesprochen und aktiviert die MainServer Methode
-> die MainServer Methode schmeißt die Html Seite svg.html
-> Clientseitig startet jetzt ein JavaScript Code auf der svg.html. Dieser holt sich zuerst die Daten indem er meine Daten-Route per ajax anspricht, dann holt er sich die parameter aus der URl und fügt diese zusammen mit den Daten aus der Datenbank in den SVG Generator ein welcher daraufhin dass SVG Generiert und anzeigt.
Macht das so sinn oder sollte ich etwas ändern?