Integrierte Module in Node.js
Node.js-integrierte Module sind zentrale Funktionsmodule, die mit der Node.js-Laufzeitumgebung geliefert werden und ohne zusätzliche Installation verwendet werden können. Diese Module bieten grundlegende Systemfunktionen wie Dateioperationen, Netzwerkkommunikation und Prozessverwaltung und sind grundlegende Werkzeuge für die Node.js-Entwicklung.
Anders als Drittanbieter-Module, die über npm installiert werden müssen, können integrierte Module direkt über dierequire()Funktion geladen werden, zum Beispiel:
const http = require('http'); // HTTP-Modul
Einführung in gängige integrierte Module
Das Folgende ist eine detaillierte Beschreibung und funktionale Übersicht der wichtigsten integrierten Module von Node.js.
| Modulname | Beschreibung | Gängige Klassen/Methoden | Typische Verwendungen |
|---|---|---|---|
| fs (Dateisystem) | Dateisystemoperationen | readFile, writeFile, mkdir, readdir, createReadStream, createWriteStream |
Datei lesen/schreiben, Verzeichnisoperationen |
| path | Dateipfade verwalten | join, resolve, dirname, basename, extname |
Plattformübergreifende Pfadverarbeitung |
| http | HTTP-Server/Client | createServer, request, get |
Webserver/Client erstellen |
| https | HTTPS-Server/Client | createServer, request |
Sichere Webdienste erstellen |
| url | URL-Parsing und -Verarbeitung | parse, format, URLKlasse |
URL-Parsing und -Konstruktion |
| querystring | Umgang mit Query-Strings | parse, stringify |
URL-Query-Parameter verarbeiten |
| os | Informationen zum Betriebssystem | cpus, freemem, totalmem, homedir, hostname |
Systeminformationen abrufen |
| events | Ereignisbehandlung | EventEmitter, on, emit, once |
Benutzerdefiniertes Event-System |
| stream | Stream-Operationen | Readable, Writable, Duplex, Transform, pipe |
Datenströme verarbeiten |
| crypto | Verschlüsselungsfunktionalität | createHash, createCipher, createDecipher, randomBytes |
Verschlüsselung/Entschlüsselung/Hashing |
| zlib | Komprimierung/Dekomprimierung | createGzip, createGunzip, createDeflate, createInflate |
Datenkomprimierung/-dekomprimierung |
| util | Hilfsprogramme | promisify, inherits, format, types |
Hilfsfunktionen |
| child_process | Verwaltung von Kindprozessen | exec, execFile, spawn, fork |
Kindprozesse erstellen |
| cluster | Cluster-Verwaltung | fork, isMaster, isWorker |
Lastverteilung auf mehrere Prozesse |
| dns | Domainnamenauflösung | lookup, resolve, reverse |
Domainnamenauflösung |
| domain | Modul zur Behandlung von Fehlern aus mehreren asynchronen Operationen | create , run, add |
Bietet einen Mechanismus zum Gruppieren mehrerer verschiedener I/O-Operationen und zur einheitlichen Behandlung ihrer Fehler. |
| net | Netzwerkoperationen | createServer, connect, Socket |
TCP-Server/Client |
| dgram | UDP-Datagramm | createSocket, send, bind |
UDP-Kommunikation |
| readline | Zeile für Zeile lesen | createInterface, on('line') |
Kommandozeileninteraktion |
| repl | Interaktiver Interpreter | start, context |
REPL-Umgebung erstellen |
| vm | Virtuelle Maschine | runInContext, createContext, Script |
JavaScript-Code ausführen |
| assert | Assertion-Tests | equal, strictEqual, deepEqual, throws |
Assertions für Unit-Tests |
| buffer | Umgang mit Binärdaten | Buffer, alloc, from, concat |
Binärdaten verarbeiten |
| ⟦0⟧ | Konsolenausgabe | log, error, time, timeEnd |
Debug-Ausgabe |
| Timer | Timer | setTimeout, setInterval, setImmediate, clearTimeout |
Geplante Aufgaben |
| perf_hooks | Leistungsüberwachung | performance, PerformanceObserver |
Leistungsmessung |
| worker_threads | Worker-Threads | Worker, isMainThread, parentPort |
Multithread-Programmierung |
1. fs (Dateisystemmodul)
fsDas Modul stellt APIs für die Interaktion mit dem Dateisystem bereit und unterstützt sowohl synchrone als auch asynchrone Operationen.
Hauptfunktionen:
- Dateien lesen/schreiben
- Verzeichnisse erstellen/löschen
- Dateiänderungen überwachen
- Dateiinformationen abrufen
Beispielcode:
Beispiel
// Datei asynchron lesen
fs.readFile('example.txt', 'utf8', (err, data) => {
if (err) throw err;
console.log(data);
});
// Datei synchron schreiben
try {
fs.writeFileSync('output.txt', 'Hallo Node.js');
console.log('Datei erfolgreich geschrieben');
} catch (err) {
console.error(err);
}
2. path (Pfad-Modul)
pathDas Modul bietet Hilfsfunktionen für den Umgang mit Datei- und Verzeichnispfaden und kann plattformübergreifend verwendet werden.
Häufige Methoden:
path.join()- Pfade verbindenpath.resolve()- In absoluten Pfad auflösenpath.basename()- Dateinamen abrufenpath.extname()- Dateiendung ermitteln
Beispielcode:
Beispiel
const fullPath = path.join(__dirname, 'files', 'example.txt');
console.log(fullPath); // Ausgabe ähnlich wie: /home/user/project/files/example.txt
const ext = path.extname('index.html');
console.log(ext); // Ausgabe: .html
3. http (HTTP-Modul)
httpDas Modul ermöglicht es Node.js, als HTTP-Server oder -Client zu laufen.
Hauptfunktionen:
- Einen HTTP-Server erstellen
- HTTP-Anfragen ausführen
- HTTP-Anfragen und -Antworten verarbeiten
Beispielcode: Einen einfachen Server erstellen
Beispiel
const server = http.createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello Node.js Server');
});
server.listen(3000, () => {
console.log('Server running at http://localhost:3000/');
});
4. events (Events-Modul)
eventsDas Modul bietet eine ereignisgesteuerte Programmierschnittstelle und ist die Grundlage für asynchrone Programmierung in Node.js.
Kernkonzepte:
- EventEmitter-Klasse
- Ereignisüberwachung (
on) - Ereignisauslösung (
emit)
Beispielcode:
Beispiel
class MyEmitter extends EventEmitter {}
const myEmitter = new MyEmitter();
// Auf Ereignis lauschen
myEmitter.on('event', () => {
console.log('Ereignis wurde ausgelöst!');
});
// Ereignis auslösen
myEmitter.emit('event');
5. os (Betriebssystemmodul)
osDas Modul stellt Hilfsmethoden und Eigenschaften im Zusammenhang mit dem Betriebssystem bereit.
Häufige Funktionen:
- CPU-Informationen abrufen
- Speicherinformationen abrufen
- Informationen zur Netzwerkschnittstelle abrufen
- Temporäres Systemverzeichnis abrufen
Beispielcode:
Beispiel
console.log(os.platform()); // Betriebssystemplattform
console.log(os.totalmem()); // Gesamter Systemspeicher
console.log(os.freemem()); // Verfügbarer Systemspeicher
console.log(os.cpus()); // CPU-Informationen
Weitere wichtige integrierte Module
1. util (Hilfsmodul)
utilDas Modul bietet verschiedene Hilfsfunktionen, darunter:
- Typüberprüfung
- Formatierung von Zeichenketten
- Umwandlung von Callback-Funktionen in Promises
- Vererbungs-Utilities
2. crypto (Krypto-Modul)
cryptoDas Modul bietet Verschlüsselungsfunktionalität, darunter:
- Hash-Algorithmen
- HMAC
- Verschlüsselung/Entschlüsselung
- Digitale Signaturen
3. stream (Stream-Modul)
streamDas Modul ist eine abstrakte Schnittstelle für die Verarbeitung von Streaming-Daten, und viele Module in Node.js sind auf Basis von Streams implementiert.
4. child_process (Kindprozess-Modul)
child_processDas Modul ermöglicht das Erstellen und Steuern von Kindprozessen und kann Systembefehle oder andere Programme ausführen.
5. url (URL-Modul)
urlDas Modul bietet Werkzeuge zum Parsen und Formatieren von URLs.
Verwendung integrierter Module
Alle integrierten Module können direkt überrequire()Funktion verfolgen:
Beispiel
Notizen:
- Modulnamen benötigen keinen Pfad
- Bei Modulnamen wird zwischen Groß- und Kleinschreibung unterschieden.
- Keine Installation erforderlich, ist in Node.js enthalten
- Verschiedene Node.js-Versionen können unterschiedliche integrierte Module enthalten
Vorteile integrierter Module
- Hohe Leistung: Eng mit der Node.js-Laufzeit integriert
- Stabilität: Gründlich getestet, hohe Zuverlässigkeit
- Keine Installation erforderlich: Funktioniert sofort einsatzbereit
- Plattformübergreifend: Konsistentes Verhalten über verschiedene Betriebssysteme hinweg
- Umfassende Dokumentation: Ausführliche offizielle Dokumentation