zurück zur Tech-Wiki
Tech-Wiki/Runtimes
N
Node.js
JavaScript-Runtime auf V8 für serverseitige Anwendungen.
·OpenJS·MIT
Übersicht
Was ist es?
Node.js ist die JavaScript-Runtime auf Googles V8-Engine — serverseitiges JS, async-IO, NPM-Ökosystem. Default für JS-Backends, Build-Tools, CLIs.
Quickstart
brew install nvm
nvm install --lts && nvm use --lts
node --version
Oder via Corepack für reproduzierbare Versions: corepack enable.
Typische Patterns
- ESM statt CJS für neue Projekte:
"type": "module"inpackage.json. - Native
fetchseit Node 18 — keinnode-fetchmehr nötig. node --watchseit 20 statt Nodemon für Dev.AbortControllerfür Timeouts und Cancellation:const ctrl = new AbortController() setTimeout(() => ctrl.abort(), 5000) await fetch(url, { signal: ctrl.signal })node:testals Built-in-Test-Runner für simple Cases — kein Jest-Overhead.
Gotchas / Was oft schiefgeht
- ESM/CJS-Interop:
require()in ESM nicht ohnecreateRequire,importin CJS nur dynamic. - Event-Loop-Blocking durch sync-IO oder schwere CPU-Tasks → Worker-Threads oder Streams nutzen.
process.env.Xist immerstring | undefined— Validierung (Zod) zur Startup-Zeit.- Globale Module-State zwischen Requests in Serverless → unerwartete Cache-Bleeds.
node_modulesriesig —pnpmstattnpm/yarnspart massiv Disk.
Wann nicht?
CPU-bound-Workloads (Bildverarbeitung, ML-Inferenz) → Go, Rust, Python. Echte Realtime mit Microsecond-Latenzen → C++/Rust.
Eingesetzt in
Projekte(1)
Produkte(1)