Standardbibliothek von JavaScript (Node.js): vollständiger Überblick
Node.js ist eine JavaScript-Laufzeitumgebung, die auf der V8-Engine von Google basiert. Im Gegensatz zu browserbasiertem JavaScript bietet Node.js eine leistungsstarke integrierte Standardbibliothek, die die Arbeit mit dem Dateisystem, Netzwerk, Datenströmen, Kryptografie und vielem mehr ermöglicht. In diesem Artikel betrachten wir die wichtigsten Module der Node.js-Standardbibliothek, die jeder Entwickler benötigt.
1. Modul fs (File System)
Das Modul fs bietet eine API für die Interaktion mit dem Dateisystem. Es unterstützt sowohl synchrone als auch asynchrone Operationen.
- Datei lesen:
const fs = require('fs');
// Asynchrones Lesenfs.readFile('example.txt', 'utf8', (err, data) => { if (err) throw err; console.log(data);});
// Synchrones Lesenconst data = fs.readFileSync('example.txt', 'utf8');console.log(data);- In Datei schreiben:
const fs = require('fs');
fs.writeFile('output.txt', 'Hallo, Welt!', (err) => { if (err) throw err; console.log('Datei gespeichert');});Das Modul unterstützt auch die Arbeit mit Verzeichnissen, Streams und Zugriffsrechten.
2. Modul path (Arbeit mit Pfaden)
Das Modul path vereinfacht die Manipulation von Dateipfaden und gewährleistet plattformübergreifende Kompatibilität.
const path = require('path');
const fullPath = '/users/docs/file.txt';console.log(path.dirname(fullPath)); // /users/docsconsole.log(path.basename(fullPath)); // file.txtconsole.log(path.extname(fullPath)); // .txt
// Pfad zusammenbauenconst newPath = path.join('/users', 'docs', 'file.txt');console.log(newPath); // /users/docs/file.txt3. Modul http (HTTP-Server und Client)
Mit http können Webserver erstellt und HTTP-Anfragen ohne externe Bibliotheken gesendet werden.
- Einfacher HTTP-Server:
const http = require('http');
const server = http.createServer((req, res) => { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('Hallo von Node.js!');});
server.listen(3000, () => { console.log('Server läuft auf Port 3000');});- HTTP-Anfrage (Client):
const http = require('http');
http.get('http://api.example.com/data', (res) => { let data = ''; res.on('data', chunk => data += chunk); res.on('end', () => console.log(data));});4. Modul stream (Datenströme)
Streams ermöglichen die Verarbeitung großer Datenmengen in Teilen, ohne sie vollständig in den Speicher zu laden. Node.js unterstützt vier Arten von Streams: Readable, Writable, Duplex und Transform.
const fs = require('fs');const zlib = require('zlib');
// Aus Datei lesen, komprimieren und schreibenconst readStream = fs.createReadStream('input.txt');const writeStream = fs.createWriteStream('output.txt.gz');const gzip = zlib.createGzip();
readStream.pipe(gzip).pipe(writeStream);5. Modul crypto (Kryptografie)
Das Modul crypto bietet Funktionalität zum Hashing, Verschlüsseln und Generieren von Zufallszahlen.
const crypto = require('crypto');
// Passwort hashenconst hash = crypto.createHash('sha256').update('myPassword123').digest('hex');console.log(hash);
// Zufällige Bytes generierencrypto.randomBytes(16, (err, buffer) => { console.log(buffer.toString('hex'));});6. Modul events (Ereignisse)
Viele Objekte in Node.js (z. B. Streams, Server) erben von EventEmitter. Dieses Modul ermöglicht das Erstellen eigener Ereignisse