Nodejs funktionien in verschiedenen JS-Dateien

Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

HansWurschtz

Grünschnabel
Guten Tag an alle,

der Titel ist verwirrend ich weiß. Es geht um folgendes.

Ich starte aktuell mit Javascript / Nodejs und ich hätte da eine frage wie ihr das löst.

Nehmen wir an wir haben eine Datei Webserver.js in welcher wir mit express den Webserver laufen lassen. Nun möchten wir auf eine Datenbank zugreifen z.B Mongodb.
Schreibt ihr auch die folgenden benötigten Sachen für den Zugriff, Schreiben in die Datenbank etc. mit in die Webserver.js oder macht ihr für sowas eigene Dateien z.B
Database.js und greift anschließend auf die Funktion in der Datei zu?

Wäre interessant zu wissen wie das professionell gelöst wird. :)
 

Andreas-B

Mitglied
In Node.js arbeitet man mit Modulen.
Das heißt, dass man für jeden "Zweck" eine eigene Datei erstellt aus der man die notwendigen Funktionen exportiert. (Diese bilden die API des Modul)

Für deinen Fall bedeutet dass, das du für den Datenbankzugriff eine Datei erstellst, die alle nötigen Operationen kapselt.
Diese importierst du dann in deiner Webserver.js Datei.
Und verwendest dann die exportierte API um auf die Datenbank zuzugreifen.

War das verständlich?
 

HansWurschtz

Grünschnabel
Hallo Andreas-B,

klar und deutlich. Vielen Dank wusste nicht ob es gut/richtig ist so zu arbeiten. Finde ich persönlich auch übersichtlicher. :)
 

Andreas-B

Mitglied
Die „Übersichtlichkeit“ ist bei diesem Vorgehen eigentlich nur ein „netter Nebeneffekt“.
In erster Linie benutzt man Module
1. für das Bündeln von zusammengehörenden Funktionalitäten.
2. für das Kapseln von Funktionalitäten, die nur das Modul benötigt.
3. für das kontrollieren und Kleinhalten von Abhängigkeiten.
4. für das Verkleinern von Geltungsbereichen („scoping“).
5. für das Environment / Konfiguration abhängige Verhalten von Objekten.
6. für das Erleichtern von (Unit-) Tests, dadurch dass man das Verhalten des Moduls unabhängig von seiner Verwendung Testen kann.

und noch einigem Anderen.
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…