Next:
Impressum
Nestjs Grundlagen
1
Impressum
2
Einführung in NestJS
2.1
Release-Strategie und Support-Zyklen
2.2
Hauptmerkmale von NestJS
2.3
Warum NestJS?
2.4
Vorteile und Merkmale
2.4.1
Modularer Aufbau
2.4.2
TypeScript-Unterstützung
2.4.3
Dekorative Programmierung
2.4.4
Dependency Injection (DI)
2.4.5
Integrierte Middleware und Interceptors
2.4.6
Unterstützung für WebSockets und Mikroservices
2.4.7
Integration mit gängigen ORMs
2.4.8
Erweiterbarkeit
2.4.9
Aktive Community und Dokumentation
2.4.10
Ähnlichkeit zu Angular
2.5
Vergleich mit anderen Frameworks
2.5.1
Express.js
2.5.2
Koa.js
2.5.3
Hapi.js
2.5.4
Sails.js
2.5.5
Fastify
3
Architektur
3.1
NestJS-Architektur im Überblick
3.2
Schichtenarchitektur in NestJS
3.2.1
Presentation Layer (Controller Schicht)
3.2.2
Business Logic Layer (Service Schicht)
3.2.3
Data Access Layer (Repository Schicht)
3.2.4
Cross-Cutting Concerns
3.3
Modulbasierte Architektur
3.3.1
Module-Kategorien
3.3.2
Dynamic Modules
3.3.3
Module Dependencies und Imports
3.3.4
Testing und Module Isolation
3.4
Microservices-Architektur mit NestJS
3.4.1
Microservice Communication Patterns
3.4.2
Transport Layer
3.4.3
Service Discovery und Load Balancing
3.4.4
API Gateway Pattern
3.4.5
Monitoring und Observability
3.4.6
Migration Strategies
4
Moderne Entwicklungsumgebungen für NestJS (2025)
4.1
Visual Studio Code: Der Marktführer für NestJS-Entwicklung
4.1.1
Aktuelle Funktionen und NestJS-spezifische Unterstützung
4.1.2
TypeScript-Integration und IntelliSense
4.1.3
Debugging-Konfiguration für NestJS
4.1.4
Performance und Systemanforderungen
4.1.5
Kollaboration und Teamwork
4.1.6
Container-Entwicklung
4.2
WebStorm: Enterprise-Grade NestJS-Entwicklung
4.2.1
Native NestJS-Integration
4.2.2
Fortgeschrittene Debugging-Funktionen
4.2.3
Database und ORM Integration
4.2.4
AI Assistant und Intelligent Features
4.2.5
HTTP Client und API-Testing
4.2.6
Performance und Systemanforderungen
4.3
Fleet und Neovim: Moderne Alternativen
4.3.1
JetBrains Fleet: Die Zukunft der Entwicklungsumgebungen
4.3.2
Neovim: Maximum Performance und Anpassbarkeit
4.4
Zed Editor: Performance-Revolution mit Einschränkungen
4.4.1
Außergewöhnliche Performance-Kennzahlen
4.4.2
TypeScript und NestJS-Unterstützung
4.4.3
Kollaboration Features
4.4.4
Kritische Einschränkungen
4.4.5
Empfehlung für Zed
4.5
Auswahlfaktoren für die optimale IDE
4.5.1
Entscheidungsmatrix nach Teamgröße
4.5.2
Performance-Anforderungen
4.5.3
TypeScript-Support-Qualität
4.5.4
Kostenbetrachtungen
4.5.5
Setup-Empfehlungen für NestJS
4.6
Best Practices und Empfehlungen
4.6.1
Für verschiedene Anwendungsfälle
4.6.2
Hybrid-Strategien
4.6.3
Migration und Evaluierung
4.7
Zukunftsausblick 2025
4.7.1
Trends und Entwicklungen
4.7.2
Marktvorhersagen
5
Tool Chain und Installation
5.1
Node.js installieren
5.1.1
Empfohlene Node.js-Versionen für NestJS (2025)
5.1.2
Installationsmethoden
5.1.3
Verifikation der Installation
5.1.4
NPM-Konfiguration optimieren
5.2
NestJS CLI installieren
5.2.1
Globale Installation
5.2.2
CLI-Update und Versionsverwaltung
5.2.3
Lokale CLI-Installation für Teams
5.2.4
Erste Projektinitialisierung
5.3
Nützliche CLI-Befehle für NestJS
5.3.1
Projektstruktur-Befehle
5.3.2
Code-Generierungs-Befehle
5.3.3
Entwicklungsserver-Befehle
5.4
Kernfunktionen der NestJS-CLI
5.4.1
Schematic-System
5.4.2
Template-Anpassung
5.4.3
Workspace-Management
5.4.4
Build- und Optimierungs-Features
5.5
Häufig verwendete CLI-Befehle
5.5.1
Tägliche Entwicklungsbefehle
5.5.2
Module und Service Management
5.5.3
Database und ORM Integration
5.5.4
API Development Patterns
5.5.5
Error Handling und Validation
5.6
Anpassung der CLI
5.6.1
Konfigurationsdatei (nest-cli.json)
5.6.2
Custom Schematics entwickeln
5.6.3
Team-spezifische Konfiguration
5.6.4
IDE-Integration optimieren
5.6.5
Environment-spezifische Builds
6
NestJS Projektstruktur
6.1
Grundlegende Verzeichnisstruktur
6.1.1
Standard-Projektlayout
6.1.2
Verzeichnis-Zweck und Bedeutung
6.1.3
Automatisch generierte Dateien
6.2
Hauptbestandteile eines NestJS-Projekts
6.2.1
Source-Verzeichnis (src/)
6.2.2
Konfigurationsdateien
6.3
Aktuelle Funktionen in NestJS
6.3.1
TypeScript als Standard
6.3.2
Verbesserte Konfigurationsdatei
6.3.3
Dekoratoren und Metadaten
6.4
Empfohlene Projektstruktur für größere Anwendungen
6.4.1
Feature-basierte Modularisierung
6.4.2
Domain-Driven Design Struktur
6.4.3
Microservices-orientierte Struktur
6.5
Best Practices
6.5.1
Naming Conventions
6.5.2
Import-Organization
6.5.3
Error Handling Structure
6.5.4
Testing Structure
6.6
Entwicklungsumgebung einrichten
6.6.1
Environment-spezifische Konfiguration
6.6.2
Development Scripts
6.6.3
Git Hooks Setup
6.6.4
Docker Development Setup
7
Module in NestJS
7.1
Hands-On Einstieg in NestJS-Module
7.1.1
Das erste Modul erstellen
7.1.2
Die Anatomie eines Moduls verstehen
7.1.3
Modulare Architektur und Abhängigkeiten
7.1.4
Warum Module?
7.1.5
Das große Ganze
7.2
Fortgeschrittene Modul-Konzepte
7.2.1
Feature-Module
7.2.2
Shared-Module
7.2.3
Core-Module
7.2.4
Dynamische Module
7.3
Modul-Design und Best Practices
7.3.1
Modul-Hierarchie und -Struktur
7.3.2
Beispiel einer typischen Modul-Struktur
7.3.3
Import und Export von Modulen
7.4
Praxisbeispiel - Ein komplettes Feature-Modul
7.4.1
Blog Feature Modul
8
Controller in NestJS
8.1
Was ist ein Controller?
8.1.1
Grundfunktionen
8.1.2
Einfaches Controller-Beispiel
8.2
Routing und HTTP-Methoden
8.2.1
Grundlagen des Controller-Routings
8.2.2
Deklarative Routen mit Dekoratoren
8.2.3
Dynamische Parameter
8.2.4
Query-Parameter und Request-Body
8.3
Request-Handling im Detail
8.3.1
Request Object
8.3.2
Response Object
8.3.3
Headers verwalten
8.3.4
Redirection
8.4
Erweiterte Controller-Funktionen
8.4.1
Route Wildcards
8.4.2
Sub-Domain Routing
8.4.3
Versioning von APIs
8.5
RESTful-Ressourcen
8.5.1
CRUD-Operationen
8.5.2
Ressourcen mit dem CLI generieren
8.5.3
Standard REST-Konventionen
9
Services und Dependency Injection
9.1
Einführung in Services
9.1.1
Die Rolle von Services in der Architektur
9.1.2
Service-Lebenszyklus
9.1.3
Service-Kategorien
9.2
Grundlegende Konzepte des DI-Systems in NestJS
9.2.1
Provider
9.2.2
Injektoren (Injectors)
9.2.3
Tokens und Custom Provider
9.2.4
Provider-Scopes
9.3
Service-Erstellung und -Nutzung
9.3.1
Grundstruktur eines Services
9.3.2
Der
@Injectable-Dekorator
9.3.3
Service-Hierarchie und Provider-Ebenen
9.4
Fortgeschrittene DI-Konzepte
9.4.1
Factory Provider
9.4.2
Async Provider
9.4.3
Optional Dependencies
9.4.4
Circular Dependencies
9.5
Anwendungsbeispiele
9.5.1
Business Logic Services
9.5.2
Data Access Layer
9.5.3
Utility Services
9.6
Best Practices für Services in NestJS
9.6.1
Service-Design-Prinzipien
9.6.2
Error Handling in Services
9.6.3
Service Testing Strategies
10
Middleware und Interceptors
10.1
Middleware in NestJS
10.1.1
Was ist Middleware?
10.1.2
Middleware-Execution-Order
10.1.3
Funktionale Middleware
10.1.4
Klassenbasierte Middleware
10.1.5
Middleware-Konfiguration
10.2
Interceptors im Detail
10.2.1
Grundlagen von Interceptors
10.2.2
Ausführungskontext (ExecutionContext)
10.2.3
CallHandler und Observable-Manipulation
10.2.4
Globale vs. lokale Interceptors
10.3
Guards (Wächter)
10.3.1
Authentication Guards
10.3.2
Authorization Guards
10.3.3
Role-based Access Control
10.4
Pipes für Datenvalidierung
10.4.1
Built-in Pipes
10.4.2
Custom Pipes
10.4.3
Validation Pipes mit class-validator
10.5
Exception Filters
10.5.1
Built-in Exception Filters
10.5.2
Custom Exception Filters
10.5.3
Exception Hierarchie
11
Datenvalidierung und DTOs
11.1
Data Transfer Objects (DTOs)
11.1.1
DTO-Design-Prinzipien
11.1.2
Grundlegende DTO-Struktur
11.1.3
Nested DTOs und Objektvalidierung
11.1.4
DTO-Vererbung und Komposition
11.2
Validierung mit class-validator
11.2.1
Erweiterte Validierungsdekoratoren
11.2.2
Conditional Validation
11.2.3
Array und Nested Object Validation
11.3
Transformation mit class-transformer
11.3.1
Grundlegende Transformationen
11.3.2
Erweiterte Transformationsbeispiele
11.3.3
Custom Transformation Decorators
11.4
OpenAPI-Integration für Dokumentation
11.4.1
Erweiterte Swagger-Dekoratoren
11.4.2
Umfassende Controller-Dokumentation
11.5
Custom Validation Decorators
11.5.1
Business Logic Validators
11.5.2
Verwendung in DTOs
11.6
Best Practices für DTOs und Validierung
11.6.1
Performance-Optimierung
11.6.2
Error-Handling für Validation
11.6.3
DTO-Versionierung
11.6.4
Testing von DTOs
12
Datenbank-Integration
12.1
ORM-Integration im Überblick
12.1.1
Warum ORMs in NestJS verwenden?
12.1.2
Unterstützte ORMs und ODMs
12.2
TypeORM mit NestJS
12.2.1
Setup und Konfiguration
12.2.2
Entities definieren
12.2.3
Repository Pattern
12.2.4
Relations und Joins
12.2.5
Migrations
12.3
Prisma mit NestJS
12.3.1
Setup und Konfiguration
12.3.2
Prisma Client Integration
12.3.3
Type Safety mit Prisma
12.4
Mongoose für MongoDB
12.4.1
Setup und Konfiguration
12.5
Database Transactions
12.5.1
TypeORM Transactions
12.5.2
Prisma Transactions
12.6
Connection Management und Pooling
12.6.1
TypeORM Connection Pool Konfiguration
12.6.2
Prisma Connection Management
12.6.3
Database Health Check
12.7
Best Practices für Datenbankintegration
12.7.1
Performance-Optimierung
12.7.2
Sicherheits-Best Practices
12.7.3
Error Handling
12.7.4
Testing mit Datenbanken
13
HTTP-Client und externe APIs
13.1
HttpModule in NestJS
13.1.1
Grundlegende Konfiguration
13.2
Axios-Integration
13.2.1
Erweiterte Axios-Konfiguration
13.2.2
TypeScript-Typen für API-Responses
13.3
REST-API-Clients erstellen
13.3.1
Generischer API-Client
13.3.2
Spezifische API-Service-Implementierungen
13.4
Retry-Mechanismen und Fehlerbehandlung
13.4.1
Erweiterte Retry-Strategien
13.4.2
Circuit Breaker Pattern
13.4.3
Comprehensive Error Handler
13.5
HTTP-Interceptors für externe Calls
13.5.1
Custom HTTP-Interceptor
13.5.2
Rate Limiting Interceptor
13.5.3
Authentication Interceptor
13.6
Caching von HTTP-Responses
13.6.1
In-Memory HTTP-Cache
13.6.2
Cache-Decorator
13.6.3
Redis-basiertes Caching
13.7
Best Practices für externe API-Integration
13.7.1
API-Client Factory
13.7.2
Environment-spezifische Konfiguration
13.7.3
Health Check für externe APIs
13.7.4
Monitoring und Metriken
14
Authentication und Authorization
14.1
Moderne Authentifizierungsstrategien
14.1.1
Überblick der Authentifizierungsarten
14.1.2
Authentication vs. Authorization
14.2
Passport.js-Integration
14.2.1
Installation und Grundkonfiguration
14.2.2
Passport Module Setup
14.2.3
Local Strategy
14.2.4
JWT Strategy
14.2.5
OAuth2 Strategies
14.3
JWT-Implementation
14.3.1
JWT Payload Interface
14.3.2
Token-Generierung
14.3.3
Token-Validierung
14.3.4
Refresh Token Pattern
14.4
Role-based Access Control (RBAC)
14.4.1
Role und Permission Entities
14.4.2
RBAC Service
14.5
Guards für Authorization
14.5.1
Role Guard
14.5.2
Permission Guard
14.5.3
Resource Owner Guard
14.5.4
Decorators für Authorization
14.5.5
Usage in Controllers
14.6
Session Management
14.6.1
Session-basierte Authentication
14.6.2
Session Store mit Redis
14.7
Multi-Factor Authentication (MFA)
14.7.1
TOTP (Time-based One-Time Password) Implementation
14.7.2
MFA Guards
14.7.3
MFA Controller
14.8
Sicherheitshinweise für moderne NestJS-Anwendungen
14.8.1
Environment-Variables und Secrets
14.8.2
Password Security Best Practices
14.8.3
Account Security Features
14.8.4
Security Headers und CSRF Protection
15
Sicherheit in NestJS
15.1
Grundlagen der Web-Sicherheit
15.1.1
Das CIA-Triad verstehen
15.1.2
Defense in Depth verstehen
15.2
JSON Web Tokens (JWT) - Das digitale Ausweissystem verstehen
15.2.1
Die Anatomie eines JWT verstehen
15.2.2
Warum zwei verschiedene Tokens verwenden?
15.3
Authentication Guards - Die digitalen Türsteher
15.3.1
Verstehen, wie Guards funktionieren
15.3.2
Authorization Guards - Die Berechtigungsprüfer
15.3.3
Erweiterte Guard-Konzepte
15.4
Cross-Site Scripting (XSS) - Wenn Websites zu Spionen werden
15.4.1
Die drei Gesichter von XSS verstehen
15.4.2
XSS-Schutz implementieren
15.4.3
Content Security Policy - Der Bodyguard für Ihre Website
15.5
Cross-Site Request Forgery (CSRF) - Wenn Websites Sie zu ungewollten Handlungen verleiten
15.5.1
Wie CSRF-Angriffe funktionieren
15.5.2
CSRF-Schutz implementieren
15.5.3
Double Submit Cookie Pattern - Eine elegante Alternative
15.6
Input Validation und Sanitization - Die Eingangskontrolle
15.6.1
Warum Input Validation so wichtig ist
15.6.2
Custom Validation mit Business Logic
15.6.3
File Upload Validation - Besonders kritisch
16
Testing in NestJS
16.1
Einführung in das NestJS-Testing
16.1.1
Die Testing-Pyramide verstehen
16.1.2
Testing-Philosophie in NestJS
16.2
Das Testing-Framework
16.2.1
Jest als Standard
16.2.2
Supertest für HTTP-Tests
16.2.3
Test-Module und TestingModule
16.3
Arten von Tests
16.3.1
Unit-Tests
16.3.2
Integration Tests
16.3.3
End-to-End-Tests
16.4
Controller-Tests
16.4.1
Testen von HTTP-Endpunkten
16.4.2
Mocking von Services
16.4.3
Request/Response-Tests
16.5
Service-Tests
16.5.1
Testen von Business Logic
16.5.2
Mocking von Dependencies
16.5.3
Database-Mocking
16.6
E2E-Testing mit Jest und Supertest
16.7
E2E-Testing mit Cypress
16.8
E2E-Testing mit Playwright
16.9
Database Testing Strategies
16.9.1
Docker-basierte Database Tests
16.10
Testing Guards, Interceptors und Pipes
16.10.1
Testing Guards
16.10.2
Testing Interceptors
16.10.3
Testing Pipes
16.11
Mocking und Test Doubles
16.11.1
Verschiedene Mocking-Strategien
16.11.2
Partial Mocks und Smart Defaults
16.12
Coverage Reports und Quality Gates
16.12.1
Coverage-Konfiguration
16.12.2
Custom Coverage-Reporter
16.12.3
CI/CD Integration
16.13
Best Practices für NestJS-Testing
16.13.1
Test-Organisation und -Struktur
16.13.2
Test-Daten-Management
16.13.3
Performance-optimierte Tests
16.13.4
Test-Wartbarkeit
17
Configuration Management
17.1
Warum Configuration Management so wichtig ist
17.1.1
Die zwölf Faktoren der App-Konfiguration
17.2
Environment Variables - Die Grundbausteine der Konfiguration
17.2.1
Die Anatomie von Environment Variables verstehen
17.2.2
.env Dateien verstehen und richtig verwenden
17.2.3
Umgebungsspezifische Konfiguration verstehen
17.3
NestJS Configuration Service - Der zentrale Konfigurationsmanager
17.3.1
Grundlegende Configuration Service Implementierung
17.3.2
Typisierte Konfiguration für bessere Entwicklererfahrung
17.3.3
Verwendung der Konfiguration in Services
17.4
Schema Validation für Konfiguration
17.4.1
Joi-basierte Validation
17.4.2
Class-Validator basierte Validation
17.5
Multi-Environment Setup - Verschiedene Welten für Ihre Anwendung
17.5.1
Environment-spezifische Konfigurationsdateien
17.5.2
Environment Manager Service
17.6
Secrets Management - Der Tresor für sensible Daten
17.6.1
Grundprinzipien des Secrets Management
17.6.2
Docker Secrets Integration
18
Logging und Monitoring
18.1
Warum Logging und Monitoring unverzichtbar sind
18.2
Built-in Logger - Der Standard-Kompass
18.2.1
Den Built-in Logger verstehen
18.2.2
Log Levels verstehen - Die Lautstärke-Regler
18.2.3
Logger-Konfiguration für verschiedene Umgebungen
18.3
Custom Logger Implementation - Der maßgeschneiderte Beobachter
18.3.1
Einen Custom Logger entwickeln
18.3.2
Structured Logging - Logs als Datenstruktur
18.4
Request/Response Logging - Die Verkehrsüberwachung
18.4.1
HTTP Request Interceptor für Logging
18.4.2
Database Query Logging - Die Datenbankdetektive
18.5
Performance Monitoring - Der Gesundheitscheck
18.5.1
Application Performance Monitoring (APM)
18.6
Health Checks - Der Puls der Anwendung
18.6.1
Comprehensive Health Check System
19
WebSockets und Real-time Features
19.1
WebSocket Gateway
19.1.1
Grundlagen eines WebSocket Gateways
19.1.2
Gateway-Konfiguration
19.2
Socket.IO Integration
19.2.1
Erweiterte Socket.IO Features
19.2.2
Client-seitiges Setup
19.3
Real-time Events
19.3.1
Event-basierte Architektur
19.3.2
Reactive Programming mit RxJS
19.4
Room Management
19.4.1
Dynamisches Room Management
19.4.2
Room-basierte Nachrichten
19.5
Authentication mit WebSockets
19.5.1
JWT-basierte Authentication
19.5.2
Authenticated Gateway
19.5.3
Session-basierte Authentication
19.6
Broadcasting und Namespaces
19.6.1
Namespace-basierte Architektur
19.6.2
Erweiterte Broadcasting-Strategien
19.6.3
Cross-Namespace Communication
19.6.4
Performance-Optimierung für Broadcasting
19.7
Best Practices und Sicherheitshinweise
19.7.1
Sicherheitsüberlegungen
19.7.2
Performance-Best Practices
20
Caching Strategien
20.1
In-Memory Caching
20.1.1
Grundlegendes Cache Setup
20.1.2
Cache Service Implementation
20.1.3
Cache Interceptor für automatisches Caching
20.1.4
Conditional Caching mit Decorators
20.2
Redis Integration
20.2.1
Redis Cache Store Setup
20.2.2
Redis Service mit erweiterten Features
20.2.3
Redis Cluster Support
20.3
Cache-Aside Pattern
20.3.1
Service mit Cache-Aside Implementation
20.3.2
Generic Cache-Aside Repository
20.4
Cache Invalidation
20.4.1
Time-based Invalidation
20.4.2
Event-driven Invalidation
20.4.3
Tag-based Invalidation
20.5
Distributed Caching
20.5.1
Multi-Instance Cache Synchronization
20.5.2
Consistency Strategies
20.6
HTTP Response Caching
20.6.1
HTTP Cache Headers
20.6.2
Conditional HTTP Caching
20.6.3
Response Compression und Caching
21
Performance-Optimierung
21.1
Profiling von NestJS-Anwendungen
21.1.1
Built-in Node.js Profiling
21.1.2
Advanced Profiling mit Clinic.js Integration
21.1.3
Distributed Tracing mit OpenTelemetry
21.2
Database Query Optimization
21.2.1
Query Analysis und Optimization
21.2.2
Database Connection Optimization
21.3
Memory Management
21.3.1
Memory Leak Detection und Prevention
21.4
Connection Pooling
21.4.1
Database Connection Pooling
21.4.2
HTTP Connection Pooling
21.5
Async/Await Optimierung
21.5.1
Parallel vs Sequential Processing
21.6
Bundle Size Optimization
21.6.1
Dynamic Imports und Lazy Loading
21.6.2
Webpack Bundle Analysis
21.7
Load Testing Strategien
21.7.1
Automatisiertes Load Testing
22
API-Dokumentation
22.1
OpenAPI/Swagger Integration
22.1.1
Grundlegende Swagger Setup
22.1.2
Erweiterte Swagger-Konfiguration
22.1.3
Multi-Document Setup für verschiedene Audiences
22.2
Automatische Schema-Generierung
22.2.1
DTO-basierte Schema-Generierung
22.2.2
Custom Decorators für Schema Enhancement
22.3
API-Versioning
22.3.1
URI-basiertes Versioning
22.3.2
Header-basiertes Versioning
22.3.3
Versioning Configuration
22.4
Response Examples
22.4.1
Comprehensive Response Examples
22.4.2
Dynamic Response Examples
22.5
Authentication Documentation
22.5.1
JWT Authentication Documentation
22.5.2
API Key Authentication Documentation
22.6
Testing über Swagger UI
22.6.1
Enhanced Swagger UI Configuration
23
Microservices mit NestJS
23.1
Microservices Architecture
23.2
Message Patterns
23.3
Transport Layer
23.3.1
TCP Transport
23.3.2
Redis Transport
23.3.3
NATS Transport
23.4
Service Discovery
23.5
Circuit Breaker Pattern
23.6
Distributed Logging
23.7
API Gateway Pattern
24
GraphQL Integration
24.1
GraphQL Setup in NestJS
24.1.1
Grundlegende GraphQL Konfiguration
24.1.2
Environment-spezifische Konfiguration
24.1.3
Federation Setup für Microservices
24.2
Resolver-Erstellung
24.2.1
Entity und Object Types
24.2.2
Input Types und DTOs
24.2.3
Comprehensive Resolver Implementation
24.3
Schema First vs Code First
24.3.1
Code First Approach
24.3.2
Schema First Approach
24.3.3
Hybrid Approach
24.4
DataLoader für N+1 Problem
24.4.1
DataLoader Implementation
24.4.2
Advanced DataLoader Patterns
24.5
Subscriptions
24.5.1
Basic Subscription Setup
24.5.2
Advanced Subscription Patterns
24.6
Authentication in GraphQL
24.6.1
JWT Authentication Implementation
25
Task Scheduling und Background Jobs
25.1
Cron Jobs mit
@nestjs/schedule
25.1.1
Grundlegendes Scheduling Setup
25.1.2
Comprehensive Cron Jobs Implementation
25.2
Bull Queue für Background Jobs
25.2.1
Bull Queue Setup und Konfiguration
25.2.2
Queue Producers (Job Creation)
25.3
Job Processing
25.3.1
Comprehensive Job Processors
25.4
Job Retry Mechanisms
25.4.1
Advanced Retry Strategies
25.5
Queue Monitoring
25.5.1
Monitoring Dashboard und APIs
26
File Upload und Storage
26.1
Multer Integration
26.1.1
Grundlegendes File Upload
26.1.2
Multer-Konfiguration
26.2
File Validation
26.2.1
Custom File Validation Pipe
26.2.2
Verwendung der Validation Pipe
26.3
Cloud Storage Integration
26.3.1
AWS S3 Integration
26.3.2
Google Cloud Storage
26.4
File Streaming
26.4.1
Download-Controller mit Streaming
26.4.2
Upload-Streaming für große Dateien
26.5
Image Processing
26.5.1
Image Processing Service
26.5.2
Integration in Controller
26.6
Best Practices
27
Containerisierung einer NestJS-Anwendung
27.1
Einführung in die Containerisierung
27.2
Containerisierung mit Docker
27.2.1
Vorbereitung der NestJS-Anwendung
27.2.2
Multi-Stage Dockerfile erstellen
27.2.3
Environment-spezifische Builds
27.2.4
Docker-Image bauen und testen
27.2.5
Sicherheitsüberlegungen
27.3
Kubernetes-Deployment
27.3.1
Kubernetes-Manifeste
27.3.2
ConfigMaps und Secrets
27.3.3
Service Discovery
27.3.4
Load Balancing
27.3.5
Health Checks und Readiness Probes
27.4
Helm Charts für NestJS
27.5
Konfiguration für Containerumgebungen
27.6
Überwachung und Logging in Containern
28
CI/CD für NestJS-Anwendungen
28.1
CI/CD-Strategie für NestJS
28.2
Pipeline-Design und Best Practices
28.3
Automatisierte Tests in CI/CD
28.3.1
Unit-Test-Integration
28.3.2
E2E-Test-Automation
28.3.3
Security Scanning
28.4
Database Migrations in CI/CD
28.5
Environment Management
28.6
Container Registry Integration
28.7
Monitoring und Rollback-Strategien
29
Server-Side Rendering und Static Generation
29.1
NestJS mit Next.js Integration
29.2
API Routes in Next.js
29.3
Server-Side Data Fetching
29.4
Static Site Generation mit NestJS APIs
30
NestJS im Enterprise-Bereich
30.1
Warum NestJS für Enterprise?
30.2
Skalierbarkeit und Performance
30.3
Security Best Practices
30.4
Compliance und Auditing
30.5
Multi-Tenant Architectures
30.6
Legacy System Integration
31
Debugging und Troubleshooting
31.1
Debugging-Strategien für NestJS
31.2
Performance Profiling
31.3
Memory Leak Detection
31.4
Database Query Analysis
31.5
Distributed Tracing
31.6
Production Debugging
32
Migration und Upgrade-Strategien
32.1
Von Express.js zu NestJS
32.2
NestJS Version Upgrades
32.3
Database Schema Migrations
32.4
Breaking Changes Management
32.5
Zero-Downtime Deployments
32.6
Monorepo-Strategien mit Nx
32.7
Gemeinsame CI/CD-Pipelines
32.8
Security zwischen Frontend und Backend
32.9
Fazit: Die Zukunft der Full-Stack-Entwicklung
32.10
Full-Stack TypeScript Setup
32.11
Shared Types und Interfaces
32.12
API Contract Management
32.13
End-to-End Type Safety