Also, was ist dieses "erfordern"?
require()
ist nicht Teil der Standard-JavaScript-API. Aber in Node.js ist es eine eingebaute Funktion mit einem speziellen Zweck:Module zu laden.
Module sind eine Möglichkeit, eine Anwendung in separate Dateien aufzuteilen, anstatt Ihre gesamte Anwendung in einer Datei zu haben. Dieses Konzept ist auch in anderen Sprachen vorhanden, mit geringfügigen Unterschieden in Syntax und Verhalten, wie Cs include
, Pythons import
, und so weiter.
Ein großer Unterschied zwischen Node.js-Modulen und Browser-JavaScript besteht darin, wie auf den Code eines Skripts vom Code eines anderen Skripts aus zugegriffen wird.
-
In Browser-JavaScript werden Skripte über
<script>
hinzugefügt Element. Wenn sie ausgeführt werden, haben sie alle direkten Zugriff auf den globalen Geltungsbereich, einen „gemeinsamen Bereich“ zwischen allen Skripten. Jedes Skript kann alles im globalen Bereich frei definieren/modifizieren/entfernen/aufrufen. -
In Node.js hat jedes Modul seinen eigenen Geltungsbereich. Ein Modul kann nicht direkt auf Dinge zugreifen, die in einem anderen Modul definiert sind, es sei denn, es stellt sie bereit. Um Dinge aus einem Modul verfügbar zu machen, müssen sie
exports
zugewiesen werden odermodule.exports
. Damit ein Modul auf dieexports
eines anderen Moduls zugreifen kann odermodule.exports
, mussrequire()
verwendet werden .
In Ihrem Code var pg = require('pg');
lädt das pg
Modul, ein PostgreSQL-Client für Node.js. Dadurch kann Ihr Code über pg
auf die Funktionen der APIs des PostgreSQL-Clients zugreifen Variable.
Warum funktioniert es in Knoten, aber nicht in einer Webseite?
require()
, module.exports
und exports
sind APIs eines für Node.js spezifischen Modulsystems. Browser implementieren dieses Modulsystem nicht.
Außerdem musste ich, bevor ich es im Knoten zum Laufen brachte, npm install pg
ausführen . Worum geht es?
NPM ist ein Paket-Repository-Dienst, der veröffentlichte JavaScript-Module hostet. npm install
ist ein Befehl, mit dem Sie Pakete aus ihrem Repository herunterladen können.
Wo wurde es abgelegt und wie findet Javascript es?
Die npm-Befehlszeilenschnittstelle legt alle heruntergeladenen Module in einem node_modules
ab Verzeichnis, in dem Sie npm install
ausgeführt haben . Node.js hat eine sehr detaillierte Dokumentation darüber, wie Module andere Module finden, einschließlich der Suche nach einem node_modules
Verzeichnis.