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 fs = require('fs'); // Dateisystem-Modul
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

const fs = require('fs');

// 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 verbinden
  • path.resolve()- In absoluten Pfad auflösen
  • path.basename()- Dateinamen abrufen
  • path.extname()- Dateiendung ermitteln

Beispielcode:

Beispiel

const path = require('path');

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 http = require('http');

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

const EventEmitter = require('events');

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

const os = require('os');

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

const moduleName = require('module_name');

Notizen:

  1. Modulnamen benötigen keinen Pfad
  2. Bei Modulnamen wird zwischen Groß- und Kleinschreibung unterschieden.
  3. Keine Installation erforderlich, ist in Node.js enthalten
  4. Verschiedene Node.js-Versionen können unterschiedliche integrierte Module enthalten

Vorteile integrierter Module

  1. Hohe Leistung: Eng mit der Node.js-Laufzeit integriert
  2. Stabilität: Gründlich getestet, hohe Zuverlässigkeit
  3. Keine Installation erforderlich: Funktioniert sofort einsatzbereit
  4. Plattformübergreifend: Konsistentes Verhalten über verschiedene Betriebssysteme hinweg
  5. Umfassende Dokumentation: Ausführliche offizielle Dokumentation
Andere Erweiterungen