[MUSIK]
In dieser Lektion lernen wir, wie wir einfache Benachrichtigungen schreiben können.
Außerdem erfahren wir mehr über Knotenmodule und
wie Knotenmodule es uns ermöglichen, unsere Anwendungen in mehreren Dateien zu organisieren.
Außerdem erfahren wir mehr über die verschiedenen Arten von Node-Modulen und
wie wir Node-Module in unsere Dateien unserer Node-Anwendung importieren und
diese innerhalb unserer Anwendung nutzen können.
Lassen Sie uns zunächst etwas mehr über Knotenmodule in dieser Vorlesung erfahren.
JavaScript, wenn es
zum ersten Mal entworfen wurde, sollte eine Skriptsprache sein, die innerhalb des Browsers verwendet werden soll.
Der kleine Bereich, in dem es verwendet werden sollte, ist also der Browser.
Nun, wie Sie aus dieser Spezialisierung verstehen, ist JavaScript
weit über seine ursprüngliche Absicht hinausgegangen und wird jetzt zum Schreiben von Anwendungen verwendet.
Sowohl mit Frameworks innerhalb des Browsers ausgeführt werden, als
auch Anwendungen auf der Serverseite auszuführen, wie wir in diesem Kurs sehen werden.
JavaScript wurde ursprünglich nie mit irgendwelchen gängigen Bibliotheken entwickelt.
Wenn Sie sich Standard-Programmiersprachen wie C, C++, Java usw. ansehen,
verfügen sie alle über Standardbibliotheken, mit denen Sie auf
die zugrunde liegende Hardware zugreifen können.
Und auch eine strukturierte Art der Organisation der Anwendung in
mehrere Dateien und dann kombinieren sie zusammen, wenn Sie eine Anwendung erstellen.
JavaScript hatte nie eine dieser Unterstützung, als es begann.
Denn wie wir verstehen, wurde JavaScript nicht für
den Zweck entwickelt, für den es heute verwendet wird.
Aber natürlich
verstanden die Leute die Schwierigkeiten, wenn Sie JavaScript
über eine einzelne Datei erweitern müssen, die als Skriptsprache für den Browser verwendet wird.
Wenn Sie nun eine sehr große JavaScript-Anwendung haben,
wird es umständlich, den gesamten Code in einer einzigen Datei zu schreiben.
Und natürlich möchten Sie, dass die Ergebnisse in der Lage sind, Ihre Anwendung in
mehrere Fakten zu unterteilen.
Jetzt, im Gegensatz zu herkömmlichen Programmiersprachen, hatte JavaScript nie eine Möglichkeit,
den Code in mehrere Dateien zu verteilen und sie dann zusammen zu kombinieren.
Dies ist also, wo die CommonJS-API hereinkam
, um diese Lücke zu füllen, die die Anforderungen für eine gemeinsame Anwendung erfüllt.
Und dieses CommonJS-Format definiert ein Modulformat, das verwendet werden kann, um
Ihre JavaScript-Anwendung in mehrere Dateien aufzuteilen.
Und Node nimmt dieses CommonJS-Format an, um
unsere JavaScript-Anwendung in mehrere Dateien zu organisieren.
Und innerhalb von JavaScript
wird jede Datei mit dem CommonJS-Format zu ihrem eigenen Node-Modul.
Lassen Sie uns im Rest dieser Vorlesung ein wenig mehr über Knotenmodule lernen.
Wie ich gerade erwähnt habe,
wird jede Datei in einer Node-Anwendung zu einem eigenen Node-Modul.
Die Datei oder die JavaScript-Datei definiert also die Grenze für ein Node-Modul.
In dieser Datei
stellt die CommonJS-Spezifikation eine Variable namens Modulvariable bereit, die ein JavaScript-Objekt ist.
Und dies gibt Ihnen Zugriff auf die aktuelle Moduldefinition innerhalb einer Datei.
Und auf diesem Modulobjekt haben Sie die
Eigenschaft module.exports, die den Export aus dem aktuellen Modul bestimmt.
Wenn Sie also der Eigenschaft module.exports etwas zuweisen,
wird dies der exportierte Wert aus dem aktuellen Modul.
So dass, wenn dieses Modul in eine andere Datei
unserer Node-Anwendung importiert wird, dann wird alles, was aus diesem Modul exportiert
wird, in der zweiten Anwendung verfügbar.
Wir werden uns in kurzer Zeit ein Beispiel ansehen.
Wenn Sie ein Modul in ein anderes Modul importieren müssen,
wird hier die require-Funktion verwendet, um das Modul zu importieren.
Wie wir in kurzer Zeit feststellen werden, wird die Required-Funktion verwendet,
um ein Node-Modul zu importieren, das in anderen Dateien in die aktuelle Datei definiert ist
, so dass es innerhalb unserer Knoten-Anwendung verwendet werden kann.
Knotenmodule können aus drei Kategorien bestehen.
Wir haben dateibasierte Knotenmodule, in denen wir das Knotenmodul
innerhalb einer Datei innerhalb unserer Anwendung definieren und es innerhalb unserer Anwendung nutzen.
Dann haben wir Kernmodule, die bereits Teil von Node sind.
Die Node Designer hielten diese Kernmodule bewusst klein
, so dass Node klein gehalten werden kann.
Und bieten auch ausreichende Funktionalität
, damit externe Modul-Designer ihre eigenen
Funktionen hinzufügen können, die bei der Entwicklung von Node-Anwendungen genutzt werden können.
Die Kernmodule enthalten also Pfad, Dateisystem, OS, util und ein paar andere.
Wir werden einige von ihnen begegnen, während wir in diesem Kurs weitergehen.
Dann haben wir externe Knotenmodule. Hierbei
handelt es sich um Knotenmodule von Drittanbietern, die von Node-Entwicklern entwickelt und
dann über das Node-Ökosystem verfügbar gemacht werden.
So können diese externen Knotenmodule innerhalb unseres Systems mit NPM installiert werden.
So oft würden Sie sehen, dass wir NPM installieren und
den Namen des Node-Moduls verwenden, und das wird in
unserer Node-Anwendung in einem Ordner namens node_modules Ordner enthalten sein.
Und wir werden externe Knotenmodule in einer späteren Lektion in diesem Kurs begegnen.
Wie nutzen wir Node Module?
Wenn Sie ein Node-Modul in einer anderen Node-Datei in Ihrer Anwendung verwenden
müssen, verwenden Sie die Funktion require.
Ich habe kurz über die Require-Funktion in einer der vorherigen
Folien dort erwähnt.
Die Require-Funktion für dateibasierte Node-Module,
geben Sie dies nach Bedarf an und
geben Sie dann den Pfad zu der Datei an, die das Node-Modul enthält.
Sie würden also require./ sagen, der Modulname, wenn die Datei
in dem aktuellen Ordner existiert, den Ihre Node-Anwendung existiert.
Dies gibt also den relativen Pfad zur Datei vom aktuellen Speicherort an.
Und auch für die Kern- und externen Module
würden Sie sie normalerweise angeben, indem Sie „require“ und den Namen des Moduls sagen.
Sie würden explizit einen Pfad dafür angeben.
Wenn es sich um ein Kernmodul handelt, ist es bereits Teil von Node und daher
wird es automatisch eingeschlossen.
Wenn es sich um ein externes Modul handelt, wird es entweder
im Ordner node_modules im aktuellen Ordner installiert, oder wenn der Node
das externe Modul im Ordner node_modules im aktuellen Ordner nicht findet,
wird es zum nächsthöheren Ordner weitergeleitet, der nach diesem Knotenmodul sucht.
Oder der nächsthöhere Level-Ordner und
die Hierarchie, bis er die Node-Module findet, die
dann importiert werden, um innerhalb Ihrer Node-Anwendung verwendet zu werden.
Wenn es das Knotenmodul in der Hierarchie nicht finden kann,
wird es offensichtlich einen Fehler auslösen, der besagt, dass das Node-Modul fehlt.
Diese Art der Organisation ist sehr nützlich in der Art und Weise,
wie die Knotenanwendungsstruktur definiert ist, da wir
im späteren Teil dieses Kurses mehr begegnen werden.
Mit dieser kurzen Einführung in die Knotenmodule werfen wir einen Blick auf ein Beispiel
, das wir im Rahmen der Übung, die dieser Vorlesung folgt, tun werden.
Wie wir in dieser Vorlesung gelernt haben,
wird die Grenze eines Knotenmoduls durch die Datei definiert, die den Code hier enthält.
Also hier habe ich ein Beispiel für ein Node-Modul, das als rectangle.js definiert ist.
Und da drin kann man sehen, dass ich hier zwei Exporte verwende,
ich sage exports.perimeter und exports.area.
Und Sie werden sehen, dass ich hier nicht module.exports verwende, weil
Exporte selbst auch eine verkürzte Version von module.exports ist.
Wenn Sie also module.exports nicht vollständig verwenden möchten,
sondern nur exportieren möchten, dann ist dies eine andere Möglichkeit,
jene Elemente zu schreiben, die aus den aktuellen Node-Modulen exportiert werden.
Also hier exportieren wir zwei Funktionen, den Umfang und
die Fläche aus dem Rechteck-Knoten-Modul.
Nun, um dieses Modul in einer anderen Datei zu verwenden,
dann werfen wir einen Blick auf die Datei index.js.
Und die erste Zeile in dieser Datei werden Sie feststellen, dass
var rect = require und in Anführungszeichen sagt,. /Rechteck.
Dies spezifiziert also, dass das Rechteck-Modul hier wichtig sein wird,
habe ich innerhalb dieser speziellen Datei der Anwendung verwendet.
So würden wir Node-Module definieren, und
dies ist ein Beispiel für ein dateibasiertes Node-Modul.
Wir werden den Kern und
die externen Knoten Module in späteren Lektionen dieses Kurses begegnen.
( MUSIK)