Standardbibliothek von JavaScript (Node.js): vollständiger Überblick
Node.js ist eine JavaScript-Laufzeitumgebung, die auf der V8-Engine basiert. Einer ihrer Hauptvorteile ist die umfangreiche Standardbibliothek, die hunderte vorgefertigter Module zur Lösung alltäglicher Backend-Entwicklungsaufgaben bereitstellt: von der Arbeit mit dem Dateisystem bis zur Erstellung von HTTP-Servern. In diesem Artikel betrachten wir die wichtigsten Module, ihre Möglichkeiten und geben praktische Codebeispiele.
1. Modul fs (File System)
Das Modul fs ist die Grundlage für die Arbeit mit Dateien und Verzeichnissen. Es unterstützt sowohl synchrone als auch asynchrone Operationen.
- Datei lesen (asynchron):
const fs = require('fs');
fs.readFile('example.txt', 'utf8', (err, data) => { if (err) throw err; console.log(data);});- In Datei schreiben:
fs.writeFile('output.txt', 'Hello, Node.js!', (err) => { if (err) throw err; console.log('Datei gespeichert');});- Arbeit mit Verzeichnissen (erstellen, löschen, lesen):
// Ordner erstellenfs.mkdir('newDir', { recursive: true }, (err) => { if (err) throw err; console.log('Ordner erstellt');});
// Inhalt eines Ordners lesenfs.readdir('.', (err, files) => { console.log(files); // Array mit Dateinamen});2. Modul path
Das Modul path vereinfacht die Arbeit mit Datei- und Ordnerpfaden, unabhängig vom Betriebssystem.
- Pfade zusammenfügen:
const path = require('path');
const fullPath = path.join('users', 'admin', 'docs', 'file.txt');console.log(fullPath); // users/admin/docs/file.txt (unter Linux) oder users\\admin\\docs\\file.txt (unter Windows)- Dateierweiterung ermitteln:
const ext = path.extname('image.png');console.log(ext); // '.png'- Pfad normalisieren (entfernt überflüssige «..» und «.»):
const normalized = path.normalize('/foo/bar//baz/asdf/quux/..');console.log(normalized); // /foo/bar/baz/asdf3. Modul http
Ermöglicht die Erstellung von HTTP-Servern und -Clients. Auf diesem Modul basieren Frameworks wie Express.js.
- Einfacher HTTP-Server:
const http = require('http');
const server = http.createServer((req, res) => { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('Hallo, Welt!');});
server.listen(3000, () => { console.log('Server läuft auf Port 3000');});- HTTP-Client (GET-Anfrage durchführen):
http.get('http://jsonplaceholder.typicode.com/posts/1', (res) => { let data = ''; res.on('data', chunk => data += chunk); res.on('end', () => console.log(JSON.parse(data)));});4. Modul events
Implementiert das Beobachter-Muster (EventEmitter). Ermöglicht das Erstellen eigener Ereignisse und das Abonnieren dieser.
const EventEmitter = require('events');
class MyEmitter extends EventEmitter {}
const myEmitter = new MyEmitter();
// Ereignis abonnierenmyEmitter.on('greet', (name) => { console.log(`Hallo, ${name}!`);});
// Ereignis auslösenmyEmitter.emit('greet', 'Alex'); // Hallo, Alex!5. Modul buffer
Buffer ist ein temporärer Speicher für Binärdaten. Wird bei der Arbeit mit Streams, Dateien und Netzwerkprotokollen verwendet.
// Puffer aus einem String erstellenconst buf = Buffer.from('Hello', 'utf8');console.log(buf); // <Buffer 48 65 6c 6c 6f>
// Puffer verkettenconst buf1 = Buffer.from('Node');const buf2 Auch in der Bibliothek
Arbeiten mit Daten in Go (Golang): Überblick über Bibliotheken und Pakete
Bildverarbeitung in C++: resize und crop mit der OpenCV-Bibliothek
ORM für Java: Vergleich von Hibernate, MyBatis, JPA und Spring Data
Geolokalisierung und Karten in Kotlin: Vollständiger Leitfaden zur Integration