Heim Web-Frontend js-Tutorial Nodejs minimalistisches Einführungs-Tutorial (1): Modulmechanismus_node.js

Nodejs minimalistisches Einführungs-Tutorial (1): Modulmechanismus_node.js

May 16, 2016 pm 04:32 PM
nodejs 入门教程

Die JavaScript-Spezifikation (ECMAScript) definiert keine vollständige Standardbibliothek, die von den meisten Programmen verwendet werden kann. CommonJS bietet eine Reihe von JavaScript-Standardbibliotheksspezifikationen. Der Knoten implementiert die CommonJS-Spezifikation.

Modulgrundlagen

In Node haben Module und Dateien eine Eins-zu-Eins-Entsprechung. Wir definieren ein Modul:

Code kopieren Der Code lautet wie folgt:

// Circle.js
var PI = Math.PI;

//Funktionsbereich exportieren
exports.area = function(r) {
Rückgabe PI * r * r;
}

//Funktionsumfang exportieren
exports.circumference = function(r) {
Geben Sie 2 * PI * r;
zurück };

Fügen Sie hier die Funktionen hinzu, die zum Exportobjekt exportiert werden müssen. Lokale Variablen eines Moduls sind von außen nicht zugänglich (z. B. die PI-Variable im obigen Beispiel). Rufen Sie require auf, um das Modul Circle.js zu laden:
Code kopieren Der Code lautet wie folgt:

var Circle = require('./circle.js');
console.log('Die Fläche eines Kreises mit Radius 4 ist '
            circle.area(4));

Übrigens gibt es im Modul ein Modulobjekt, das das Modul selbst darstellt, und exports ist das Attribut des Moduls.

Modul wird geladen

Der Knoten puffert geladene Module, um den Mehraufwand für das erneute Laden zu vermeiden:

Code kopieren Der Code lautet wie folgt:

// test.js
console.log("Ich bin hier");

Modul test.js mehrmals laden

Code kopieren Der Code lautet wie folgt:

// „Ich bin hier“
nur einmal ausgeben require('./test');
require('./test');

Wenn Sie eine Datei ohne Suffix laden, versucht Node, ein Suffix hinzuzufügen und zu laden:

1..js (JavaScript-Quelldatei)
2..Knoten (C/C-Erweiterungsmodul)
3..json (JSON-Datei)

Es gibt mehrere Hauptkategorien von Modulen:

1. Kernmodul. Die Kernmodule wurden in Node kompiliert und wir finden diese Kernmodule im lib-Verzeichnis im Quellcode. Gemeinsame Kernmodule: Net-, http-, FS-Module usw.

2. Dateimodul. Dateimodule werden über einen relativen oder absoluten Pfad geladen, wie zum Beispiel „circle.js“

, das wir oben gesehen haben

3. Benutzerdefiniertes Modul. Benutzerdefinierte Module befinden sich im Verzeichnis „node_modules“ und die verschiedenen Module, die wir über npm installieren, werden im Verzeichnis „node_modules“

abgelegt

Das Kernmodul wird immer zuerst geladen. Wenn ein benutzerdefiniertes Modul http vorhanden ist, wird weiterhin das Kernmodul http anstelle des benutzerdefinierten Moduls http geladen. Suchen Sie beim Laden eines benutzerdefinierten Moduls zunächst nach dem Verzeichnis „node_modules“ im aktuellen Verzeichnis, dann nach dem Verzeichnis „node_modules“ unter dem übergeordneten Verzeichnis und so weiter bis zum Stammverzeichnis.

require Wenn das geladene Modul keine Datei, sondern ein Verzeichnis ist, wird ein solches Verzeichnis als Paket bezeichnet. Im Paket gibt es eine Datei mit dem Namen package.json (Paketbeschreibungsdatei), zum Beispiel:

Code kopieren Der Code lautet wie folgt:

{ "name" : "some-library",
„main“: „./lib/some-library.js“ }

Wobei main das Modul angibt, das geladen werden muss. Wenn package.json nicht im Paket vorhanden ist oder das Hauptmodul nicht in package.json angegeben ist, versucht Node, index.js, index.node und index.json zu laden.

Beim Laden eines JavaScript-Moduls wird das geladene Modul in eine Funktion eingeschlossen:

Code kopieren Der Code lautet wie folgt:

function(module, exports, __filename, __dirname, ...) {
JavaScript-Modul
}

Das Modul, die Exporte, der __Dateiname, der __Verzeichnisname usw., auf die jedes JavaScript-Modul zugreift, werden tatsächlich über Funktionsparameter übergeben. Aufgrund dieser Umhüllung sind die lokalen Variablen des Moduls von außen nicht zugänglich. Aber manchmal gibt es Probleme, die schwer zu verstehen sind, wie zum Beispiel:

test1.js

Code kopieren Der Code lautet wie folgt:

exporte = {
Name: 'Name5566',
}

test2.js

Code kopieren Der Code lautet wie folgt:

module.exports = {
Name: 'Name5566',
}

Laden Sie diese beiden Module:

Code kopieren Der Code lautet wie folgt:

var test1 = require('./test1.js');
console.log(test1.name); // undefiniert
var test2 = require('./test2.js');
console.log(test2.name); // Name5566

Exports wird als Parameter an das Modul übergeben. Wir können dem Exports-Objekt natürlich Attribute (oder Methoden) über exports.x hinzufügen, aber die direkte Zuweisung eines Werts an exports (z. B. exports = x) ändert nur das Formale Parameter statt des tatsächlichen Parameters, daher:

1. Wenn Sie Attribute zu Exporten hinzufügen, verwenden Sie Exporte
2. Wenn Sie Exporten Werte zuweisen, verwenden Sie module.exports

Packen

Gemäß den CommonJS-Spezifikationen sollte ein Komplettpaket Folgendes enthalten:

1.package.json Paketbeschreibungsdatei
2.bin-Binärdateiverzeichnis
3.lib JavaScript-Codeverzeichnis
4.doc-Dokumentverzeichnis
5.Test-Testcode-Verzeichnis

NPM ist ein Paketverwaltungstool für Node. Allgemeine Verwendung:

Sehen Sie sich die Dokumentation für den Befehl an:

Code kopieren Der Code lautet wie folgt:

npm help install

Siehe die Dokumentation zum Installationsbefehl.

Installieren Sie ein Paket:

Code kopieren Der Code lautet wie folgt:

npm install redis

Installieren Sie das Redis-Paket. Der Installationsbefehl installiert das Paket im Verzeichnis node_modules im aktuellen Verzeichnis.

Ein Paket entfernen:

Code kopieren Der Code lautet wie folgt:

npm redis entfernen

Entfernen Sie das Redis-Paket. Der Befehl „remove“ entfernt das Paket im aktuellen Verzeichnis.
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Der Unterschied zwischen NodeJS und Tomcat Der Unterschied zwischen NodeJS und Tomcat Apr 21, 2024 am 04:16 AM

Die Hauptunterschiede zwischen Node.js und Tomcat sind: Laufzeit: Node.js basiert auf der JavaScript-Laufzeit, während Tomcat ein Java-Servlet-Container ist. E/A-Modell: Node.js verwendet ein asynchrones, nicht blockierendes Modell, während Tomcat synchrones Blockieren verwendet. Parallelitätsbehandlung: Node.js verarbeitet die Parallelität über eine Ereignisschleife, während Tomcat einen Thread-Pool verwendet. Anwendungsszenarien: Node.js eignet sich für Echtzeit-, datenintensive und Anwendungen mit hoher Parallelität, und Tomcat eignet sich für herkömmliche Java-Webanwendungen.

Der Unterschied zwischen NodeJS und VueJS Der Unterschied zwischen NodeJS und VueJS Apr 21, 2024 am 04:17 AM

Node.js ist eine serverseitige JavaScript-Laufzeitumgebung, während Vue.js ein clientseitiges JavaScript-Framework zum Erstellen interaktiver Benutzeroberflächen ist. Node.js wird für die serverseitige Entwicklung verwendet, beispielsweise für die Entwicklung von Back-End-Service-APIs und die Datenverarbeitung, während Vue.js für die clientseitige Entwicklung verwendet wird, beispielsweise für Single-Page-Anwendungen und reaktionsfähige Benutzeroberflächen.

Ist NodeJS ein Backend-Framework? Ist NodeJS ein Backend-Framework? Apr 21, 2024 am 05:09 AM

Node.js kann als Backend-Framework verwendet werden, da es Funktionen wie hohe Leistung, Skalierbarkeit, plattformübergreifende Unterstützung, ein umfangreiches Ökosystem und einfache Entwicklung bietet.

Was ist der Unterschied zwischen den Dateien npm und npm.cmd im Installationsverzeichnis von nodejs? Was ist der Unterschied zwischen den Dateien npm und npm.cmd im Installationsverzeichnis von nodejs? Apr 21, 2024 am 05:18 AM

Es gibt zwei npm-bezogene Dateien im Node.js-Installationsverzeichnis: npm und npm.cmd. Die Unterschiede sind wie folgt: unterschiedliche Erweiterungen: npm ist eine ausführbare Datei und npm.cmd ist eine Befehlsfensterverknüpfung. Windows-Benutzer: npm.cmd kann über die Eingabeaufforderung verwendet werden, npm kann nur über die Befehlszeile ausgeführt werden. Kompatibilität: npm.cmd ist spezifisch für Windows-Systeme, npm ist plattformübergreifend verfügbar. Nutzungsempfehlungen: Windows-Benutzer verwenden npm.cmd, andere Betriebssysteme verwenden npm.

So verbinden Sie NodeJS mit der MySQL-Datenbank So verbinden Sie NodeJS mit der MySQL-Datenbank Apr 21, 2024 am 06:13 AM

Um eine Verbindung zu einer MySQL-Datenbank herzustellen, müssen Sie die folgenden Schritte ausführen: Installieren Sie den MySQL2-Treiber. Verwenden Sie mysql2.createConnection(), um ein Verbindungsobjekt zu erstellen, das die Hostadresse, den Port, den Benutzernamen, das Passwort und den Datenbanknamen enthält. Verwenden Sie „connection.query()“, um Abfragen durchzuführen. Verwenden Sie abschließend Connection.end(), um die Verbindung zu beenden.

Ist NodeJS eine Back-End-Entwicklungssprache? Ist NodeJS eine Back-End-Entwicklungssprache? Apr 21, 2024 am 05:09 AM

Ja, Node.js ist eine Backend-Entwicklungssprache. Es wird für die Back-End-Entwicklung verwendet, einschließlich der Handhabung serverseitiger Geschäftslogik, der Verwaltung von Datenbankverbindungen und der Bereitstellung von APIs.

Was sind die globalen Variablen in NodeJS? Was sind die globalen Variablen in NodeJS? Apr 21, 2024 am 04:54 AM

Die folgenden globalen Variablen sind in Node.js vorhanden: Globales Objekt: global Kernmodul: Prozess, Konsole, erforderlich Laufzeitumgebungsvariablen: __dirname, __filename, __line, __column Konstanten: undefiniert, null, NaN, Infinity, -Infinity

Gibt es einen großen Unterschied zwischen NodeJS und Java? Gibt es einen großen Unterschied zwischen NodeJS und Java? Apr 21, 2024 am 06:12 AM

Die Hauptunterschiede zwischen Node.js und Java sind Design und Funktionen: Ereignisgesteuert vs. Thread-gesteuert: Node.js ist ereignisgesteuert und Java ist Thread-gesteuert. Single-Threaded vs. Multi-Threaded: Node.js verwendet eine Single-Threaded-Ereignisschleife und Java verwendet eine Multithread-Architektur. Laufzeitumgebung: Node.js läuft auf der V8-JavaScript-Engine, während Java auf der JVM läuft. Syntax: Node.js verwendet JavaScript-Syntax, während Java Java-Syntax verwendet. Zweck: Node.js eignet sich für I/O-intensive Aufgaben, während Java für große Unternehmensanwendungen geeignet ist.

See all articles