Node.js lernen - JavaScript auf dem Server
Node.js ermöglicht, JavaScript außerhalb des Browsers auszuführen. Perfect für Backend.
Was ist Node.js?
Node.js ist:
- Eine JavaScript Runtime (nicht eine Sprache)
- Läuft auf Servern, nicht im Browser
- Eventgesteuerte, nicht-blockierende I/O
- Ideal für Web Services und APIs
- Verwendet NPM (Node Package Manager)
Kurz: "JavaScript auf dem Server"
Warum Node.js?
Vorteile
- ✓ Gleiche Sprache Frontend + Backend (JavaScript)
- ✓ Sehr schnell (V8 Engine)
- ✓ Nicht-blockierend (viele gleichzeitige Anfragen)
- ✓ Großes Ökosystem (npm: 3M+ Pakete)
- ✓ Einfach zu lernen (nicht komplex wie Java)
- ✓ Sehr populär (großer Jobmarkt)
Nachteile
- ✗ Single-threaded (Scaling braucht Workarounds)
- ✗ Weniger geeignet für CPU-intensive Tasks
- ✗ Weniger performant als Go oder Rust
Voraussetzungen
Du brauchst:
- ✓ Solides JavaScript Verständnis
- ✓ Async/Await und Promises
- ✓ Basics von APIs (HTTP, JSON)
- ✓ Node.js + npm Installation
Nicht nötig:
- ✗ Kein SQL erforderlich (lernt während Development)
- ✗ Kein Backend-Vorwissen
Lernpfad: Node.js
Phase 1: Node.js Basics (1–2 Wochen)
Was du lernst:
- Node.js Installation und CLI
- NPM und package.json
- Modules und require()
- File System Operations
- Event Emitter
- Einfache Scripts schreiben
Praktisches Projekt:
- CLI-Tool (Datei-Manager oder ähnlich)
- NPM-Pakete nutzen
Phase 2: Web Server und Express (2–3 Wochen)
Was du lernst:
- HTTP Basics
- Express.js Framework
- Routing
- Middleware
- Request/Response Handling
- Static Files Serving
Praktisches Projekt:
- Einfacher Web Server
- Express App mit mehreren Routes
Phase 3: APIs bauen (2–3 Wochen)
Was du lernst:
- REST API Struktur
- JSON Response
- HTTP Methods (GET, POST, PUT, DELETE)
- Request Body parsing
- Error Handling
- Status Codes
Praktisches Projekt:
- Todo API
- CRUD Endpoints
Phase 4: Datenbanken (2–4 Wochen)
Was du lernst:
- SQL Basics (oder No-SQL)
- PostgreSQL oder MongoDB
- ORMs/ODMs (Prisma, Mongoose)
- Queries schreiben
- Relationships
Praktisches Projekt:
- Blog API mit Datenbank
- Users, Posts, Comments
Phase 5: Authentication & Advanced (2–4 Wochen)
Was du lernst:
- Password Hashing
- JWT Tokens
- Session Management
- Validation
- Security Basics
- Testing
Praktisches Projekt:
- Komplexe API mit Auth
- User Registration/Login
Core Concepts
Modules
// math.js
module.exports = {
add: (a, b) => a + b
};
// app.js
const math = require('./math');
console.log(math.add(2, 3)); // 5
Async/Await
async function fetchUser(id) {
try {
const response = await fetch(`/api/users/${id}`);
const user = await response.json();
return user;
} catch (error) {
console.error(error);
}
}
Express Server
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(3000, () => {
console.log('Server running on port 3000');
});
Express Framework
Express ist das populäre Web Framework für Node.js:
- Routing
- Middleware
- Static Files
- Template Engines
- Error Handling
Einstieg: 1–2 Wochen bis produktiv
Datenbanken
SQL (PostgreSQL)
- Strukturiert
- Relational
- ACID-Garantien
- Best For: Strukturierte Daten
No-SQL (MongoDB)
- Flexibel
- Document-oriented
- Skalierbar
- Best For: Unstrukturierte Daten
Anfänger: PostgreSQL einfacher
Deployment
Beliebte Hosting-Services
- Heroku: Einfach, kostenlos Hobby
- Railway: Modern, Hobby-friendly
- Render: Wie Heroku
- AWS/DigitalOcean: Komplexer, billiger
Ein-Click Deployment oft verfügbar.
Testing
Unit Tests
// math.test.js
const math = require('./math');
test('add 2 + 3 equals 5', () => {
expect(math.add(2, 3)).toBe(5);
});
Tools: Jest, Mocha
Node.js vs. Alternativen
| Runtime | Sprache | Lernen | Performance |
|---|---|---|---|
| Node.js | JavaScript | Einfach | Gut |
| Python + Django | Python | Mittel | Gut |
| Go | Go | Mittel | Sehr Gut |
| Java | Java | Schwer | Sehr Gut |
Anfänger: Node.js oder Python
Häufig gestellte Fragen
Sollte ich Node.js oder Python Backend lernen?
Beides ok. JavaScript-Anfänger: Node.js (gleiche Sprache).
Ist Node.js für Production ok?
Ja, absolut. Netflix, Uber, PayPal nutzen Node.js.
Brauche ich Datenbank-Wissen vor Node.js?
Nein, lernt während Development. SQL Basics danach.
Welches Framework: Express, Fastify, Koa?
Anfänger: Express (am beliebtesten). Später: Andere erkunden.
Kann ich Node.js ohne Frontend lernen?
Ja, Tools wie Postman oder curl testen die API.
