FallstudienBlogÜber uns
Anfragen

Erste Schritte mit NestJS: Ein modernes Framework für Node.js

Viktor Kharchenko

14. Nov. 20235 Min. Lesezeit

Software development

Inhaltsverzeichnis

  • Was ist NestJS?

  • Module und Provider

    • Module: 

    • Provider: 

  • Die MVC-Architektur

    • Model: 

    • View:

    • Controller: 

  • TypeScript-Unterstützung

  • Dependency Injection

  • Dekoratoren

    • @Controller: 

    • @Get, @Post, @Put, @Delete: 

    • @Param, @Query, @Body: 

    • @Injectable: 

  • Erste Schritte mit deinem ersten NestJS-Projekt

  • Fazit

  • FAQs

Node.js hat in den letzten Jahren aufgrund seiner Performance und Skalierbarkeit enorme Popularität beim Entwickeln serverseitiger Anwendungen gewonnen. Wenn du mit Node.js durchstarten und dabei auf ein robustes, gut organisiertes Framework setzen möchtest, ist NestJS eine ausgezeichnete Wahl. In diesem Artikel stellen wir dir NestJS vor und führen dich durch die Grundlagen.

Was ist NestJS?

NestJS ist ein progressives Node.js-Framework für effiziente, skalierbare und gut wartbare serverseitige Anwendungen. Es verbindet die Leistungsfähigkeit von Node.js mit TypeScript und ist damit besonders attraktiv für Entwickler, die statisch typisierte Sprachen bevorzugen. Schauen wir uns die wichtigsten Aspekte von NestJS an:

Module und Provider

NestJS-Anwendungen folgen einem modularen Ansatz. Module und Provider sind grundlegende Bausteine von NestJS-Anwendungen.

Module: 

Ein Modul hilft dir, deine Anwendung in klar abgegrenzte, wiederverwendbare Teile zu gliedern. Jedes Modul kapselt thematisch zusammengehörige Komponenten wie Controller, Services und weitere zugehörige Dateien. So bleibt der Code sauber und gut organisiert.

Provider: 

Provider sind Klassen, die in andere Komponenten wie Controller oder Services injiziert werden können. Sie definieren maßgeblich die Geschäftslogik deiner Anwendung. Provider werden mit dem Decorator @Injectable() versehen und können so in abhängigen Komponenten verwendet werden.

Die MVC-Architektur

NestJS folgt dem Model-View-Controller-(MVC)-Architekturmuster und bietet damit einen strukturierten, gut organisierten Ansatz für den Aufbau von Anwendungen. Diese Trennung der Verantwortlichkeiten macht den Code wartbar und fördert die Skalierbarkeit.

Model: 

In NestJS repräsentiert das Model die Daten und Geschäftslogik deiner Anwendung. Es definiert die Struktur deiner Daten und deren Interaktion mit der Datenbank. Hier ein Beispiel für ein einfaches User-Model mit TypeScript:

// user.model.ts
export class User {
  id: number;
  username: string;
  email: string;
  // ... other properties and methods
}

View:

Obwohl NestJS primär auf das Backend fokussiert, kannst du APIs erstellen, die als „View“ für deine Frontend-Anwendungen dienen. Die in Controllern definierten API-Endpunkte bilden die Schnittstelle zwischen Frontend und Server.

Controller: 

Controller verarbeiten eingehende Requests, rufen dafür Services auf und senden Antworten zurück. Sie sind für die Definition der Routen und die Request-Verarbeitungslogik zuständig. Decorators spielen eine zentrale Rolle, um Routen festzulegen und Controller mit Endpunkten zu verknüpfen. Hier ein einfaches Controller-Beispiel in NestJS:

// app.controller.ts
import { Controller, Get } from '@nestjs/common';

@Controller('app')
export class AppController {
  @Get()
  getHello(): string {
    return 'Hello, NestJS!';
  }
}

TypeScript-Unterstützung

TypeScript ist eine statisch typisierte Obermenge von JavaScript und wird von NestJS vollständig unterstützt. So schreibst du sauberen, typsicheren Code, der Fehler bereits beim Kompilieren erkennt und damit deinen Entwicklungs-Workflow verbessert.

TypeScript bietet Features wie Interfaces und Typprüfung, was beim Definieren von Datenstrukturen und Schnittstellen zwischen verschiedenen Teilen deiner Anwendung hilfreich ist. So arbeitest du im gesamten Projekt mit konsistenten, klar definierten Daten.

Dependency Injection

Dependency Injection ist ein Designmuster, das in NestJS zur Verwaltung von Abhängigkeiten und zur Verbesserung der Testbarkeit eingesetzt wird. Im Kern bedeutet Dependency Injection, dass eine Komponente (z. B. ein Controller oder ein Service) die benötigten Abhängigkeiten (Services oder Objekte) bereitgestellt bekommt, anstatt sie selbst zu erzeugen. Das fördert Wiederverwendbarkeit und die Trennung von Verantwortlichkeiten.

In NestJS kannst du Services erstellen, die bestimmte Funktionalitäten deiner Anwendung kapseln. Diese Services lassen sich dann in Controller oder andere Services injizieren, was die Modularität fördert. Hier ein Beispiel für einen Service und dessen Injection in einen Controller:


// cats.service.ts
import { Injectable } from '@nestjs/common';

@Injectable()
export class CatsService {
  private readonly cats: string[] = [];

  create(cat: string): void {
    this.cats.push(cat);
  }

  findAll(): string[] {
    return this.cats;
  }
}

// cats.controller.ts
import { Controller, Post, Get, Body } from '@nestjs/common';
import { CatsService } from './cats.service';

@Controller('cats')
export class CatsController {
  constructor(private readonly catsService: CatsService) {}

  @Post()
  async create(@Body() cat: string) {
    this.catsService.create(cat);
  }

  @Get()
  async findAll(): Promise<string[]> {
    return this.catsService.findAll();
  }
}

In diesem Beispiel kapselt der CatsService die Logik zur Verwaltung einer Liste von Katzen. Dieser Service wird in den CatsController injiziert, sodass der Controller die bereitgestellte Funktionalität nutzen kann.

Dekoratoren

Dekoratoren sind ein leistungsstarkes Feature in NestJS. Sie ermöglichen es, Metadaten zu definieren und verschiedene Aspekte wie Routing, Validierung und weitere Funktionalitäten elegant abzubilden. Das vereinfacht die Struktur und erhöht die Lesbarkeit des Codes.

@Controller: 

Mit dem @Controller-Decorator definierst du eine Controller-Klasse. Er legt die Basisroute für alle in diesem Controller definierten Routen fest.

@Get, @Post, @Put, @Delete: 

Diese Dekoratoren verwendest du innerhalb von Controllern, um HTTP-Methoden und zugehörige Routen zu definieren. @Get() steht beispielsweise für eine GET-Route, @Post() für eine POST-Route.

@Param, @Query, @Body: 

Diese Dekoratoren greifen in Controller-Methoden auf Request-Parameter, Query-Parameter und Request-Bodies zu. So wird das Auslesen und Verarbeiten von Daten deutlich einfacher.

@Injectable: 

Der @Injectable()-Decorator markiert eine Klasse als Provider bzw. Service, der in andere Komponenten wie Controller oder Services injiziert werden kann.

Erste Schritte mit deinem ersten NestJS-Projekt

Los geht’s Schritt für Schritt mit deinem NestJS-Projekt:

1. Installation: Installiere NestJS global mit npm oder yarn:


npm install -g @nestjs/cli
# OR
yarn global add @nestjs/cli

2. Neues Projekt erstellen: Erzeuge ein neues NestJS-Projekt mit der Nest CLI:


nest new project-name

Dieser Befehl erstellt die Projektstruktur und installiert die benötigten Abhängigkeiten.

Struktur erkunden: Navigiere nach der Erstellung in den Projektordner. Du findest eine übersichtliche Struktur mit Ordnern für Controller, Module, Services und mehr.

3. Erstes Modul erstellen: Erzeuge ein Modul, einen Controller und einen Service. Das sind zentrale Bausteine in NestJS:


nest generate module module-name // nest g m module-name
nest generate controller controller-name // nest g c controller-name
nest generate service service-name // nest g s controller-name

Oder nutze die Kurzbefehle:

nest g m module-name
nest g c controller-name
nest g s controller-name

Ersetze module-name, controller-name und service-name durch aussagekräftige Namen für dein Projekt.

4. Routen definieren: Verwende in deinem Controller Dekoratoren wie @Get(), @Post() und andere, um Routen zu definieren. Die Geschäftslogik implementierst du im zugehörigen Service.

5. Anwendung starten: Starte deine NestJS-Anwendung mit folgendem Befehl:

npm run start
# OR
yarn start

Standardmäßig lauscht deine NestJS-Anwendung auf Port 3000.

6. API testen: Öffne deinen Browser oder nutze Tools wie Postman, um deine API-Endpunkte zu testen. Wenn du zum Beispiel eine GET-Route im Controller definiert hast, kannst du sie unter http://localhost:3000/controller-route aufrufen.

Fazit

NestJS ist ein leistungsstarkes Framework, das die Entwicklung mit Node.js vereinfacht und einen strukturierten, effizienten Weg zum Erstellen serverseitiger Anwendungen bietet. Ob Einsteiger oder erfahrener Entwickler – NestJS lohnt sich in jedem Fall. Mit den hier genannten Ressourcen bist du bestens gerüstet für deinen Einstieg. Viel Spaß beim Coden!

FAQs

Was ist NestJS?

NestJS ist ein progressives Node.js-Framework zum Erstellen effizienter, skalierbarer serverseitiger Anwendungen.

Was ist die MVC-Architektur in NestJS?

MVC trennt eine App in Model, View und Controller und fördert dadurch Organisation und Wartbarkeit des Codes.

Wie profitiert NestJS von TypeScript?

TypeScript sorgt für Typsicherheit, verbessert die Codequalität und erkennt Fehler bereits beim Kompilieren.

Was ist Dependency Injection in NestJS?

Dependency Injection verwaltet Abhängigkeiten von Komponenten und fördert Wiederverwendbarkeit sowie klare Verantwortlichkeiten.

Was sind Module und Provider in NestJS?

Module strukturieren die App in Teilbereiche, während Provider injizierbare Klassen zur Definition der Geschäftslogik sind.

Wie erstelle ich ein neues NestJS-Projekt?

Mit nest new project-name erzeugst du per Nest CLI eine neue Projektstruktur.

Was sind Dekoratoren in NestJS?

Dekoratoren definieren Metadaten und vereinfachen die Struktur, z. B. Routing mit @Get() und @Controller.

Wie starte ich meine NestJS-Anwendung?

Führe npm run start oder yarn start aus. Standardmäßig läuft die App auf Port 3000.

Wie teste ich API-Endpunkte in NestJS?

Mit Tools wie Postman oder im Browser, indem du die URL der Endpunkte aufrufst.

Kann ich in NestJS eigene Dekoratoren erstellen?

Ja, du kannst eigene Dekoratoren definieren, um zusätzliche Funktionalität oder Metadaten hinzuzufügen.

Welche Rolle spielt der @Injectable()-Decorator?

@Injectable() markiert eine Klasse als Provider, damit sie in andere Komponenten injiziert werden kann.

Wie definiere ich Routen in NestJS-Controllern?

Verwende in Controller-Klassen Dekoratoren wie @Get(), @Post() usw., um Routen festzulegen.

Ist NestJS für Einsteiger und erfahrene Entwickler geeignet?

Ja, NestJS bietet für jedes Level einen strukturierten und effizienten Entwicklungsprozess.

Kann ich mit NestJS RESTful APIs bauen?

Ja, dank Routing und Dekoratoren eignet sich NestJS hervorragend für RESTful APIs.

Welche Datenbanken sind mit NestJS kompatibel?

NestJS unterstützt viele Datenbanken, darunter MySQL, PostgreSQL, MongoDB und mehr, z. B. über Libraries wie TypeORM.

Eignet sich NestJS für Echtzeitanwendungen?

Ja, mit WebSocket-Libraries wie Socket.io kannst du NestJS für Echtzeitanwendungen nutzen.

Unterstützt NestJS eine Microservices-Architektur?

Ja, NestJS unterstützt Microservices und eignet sich zum Aufbau verteilter Systeme.

Kann ich NestJS mit einem Frontend-Framework wie Angular verwenden?

Ja, NestJS lässt sich hervorragend als Backend für Angular-Anwendungen einsetzen.

Gibt es offizielle NestJS-Plugins oder -Erweiterungen?

Ja, es gibt eine aktive Community sowie offizielle und Community-beitragsbasierte Plugins und Erweiterungen.

Wo finde ich NestJS-Dokumentation und Tutorials?

Ausführliche Dokumentation und Tutorials findest du auf der offiziellen NestJS-Website und in den Community-Foren.


 

Veröffentlicht am 14. November 2023

Teilen


Viktor Kharchenko

Node.js Developer

Digital Transformation Strategy for Siemens Finance

Cloud-based platform for Siemens Financial Services in Poland

See full Case Study
Ad image
Erste Schritte mit NestJS: Ein modernes Framework für Node.js
Verpassen Sie nichts – abonnieren Sie unseren Newsletter
Ich stimme dem Empfang von Marketing-Kommunikation von Startup House zu. Klicken Sie für die Details

Das könnte Ihnen auch gefallen...

Professionelles Outsourcing der Softwareentwicklung
Software developmentSoftware house

Professionelles Outsourcing der Softwareentwicklung

Nicht alle Unternehmen verfügen über eigene IT-Teams – genau hier setzt das Outsourcing der Softwareentwicklung (IT‑Outsourcing) an. Durch die Zusammenarbeit mit einem spezialisierten Outsourcing-Anbieter können Unternehmen die Expertise qualifizierter Fachkräfte nutzen und sich auf ihr Kerngeschäft konzentrieren. Dieser Artikel beleuchtet die angebotenen Services, die Vorteile und die Risiken des Auslagerns der Softwareentwicklung und zeigt, warum dieses Modell für viele Unternehmen zu einem wachsenden Trend geworden ist.

David Adamick

02. Juni 20236 Min. Lesezeit

Illustration of mobile app development trends for 2025 with AI, AR, and 5G icons
Software developmentDigital products

UI-Entwicklung mit Storybook für JavaScript meistern

Storybook ist ein unverzichtbares Tool für Frontend-Entwickler, die UI-Komponenten erstellen und interaktive Benutzeroberflächen in JavaScript entwickeln müssen.

Marek Majdak

09. März 20234 Min. Lesezeit

Was sagt ein nach Test-Driven Development geschriebener Test aus? Vorteile und Nachteile von TypeScript
Software development

Was sagt ein nach Test-Driven Development geschriebener Test aus? Vorteile und Nachteile von TypeScript

TypeScript, die von Microsoft entwickelte Open-Source-Sprache, bietet Softwareentwicklerinnen und -entwicklern zahlreiche Vorteile – von statischer Typisierung bis hin zu weniger Fehlern. Gleichzeitig bringt sie aber auch einige Kompromisse mit sich, die man berücksichtigen sollte. Dieser Artikel beleuchtet die Vorteile von TypeScript, seine Eignung für große Projekte, wie es Fehler reduziert, und seine Kompatibilität mit JavaScript.

Marek Majdak

18. Juli 20235 Min. Lesezeit

Software Solutions for Growth in the Climate Tech Sector
Software development

Best Practices für Code Reviews: Erstklassige Codequalität und effektive Entwicklungsteams

Code-Review-Praktiken sind entscheidend, um die Codequalität zu sichern und ein produktives Teamumfeld zu fördern. Wenn Entwicklungsteams Best Practices wie kleine, inkrementelle Änderungen, die Einhaltung von Coding-Standards und konstruktives Feedback anwenden, liefern sie besseren Code und arbeiten effektiver. Dieser Artikel beleuchtet die Grundlagen des Code-Review-Prozesses, die Rolle von Testabdeckung und Automatisierung, die Vorteile von Peer-Code-Reviews und die Bedeutung der Auswahl geeigneter Code-Review-Tools.

Marek Majdak

17. Juli 20234 Min. Lesezeit

Alles, was Sie über Node.js wissen müssen – und wie Sie mit einer Node.js-Agentur zusammenarbeiten
Software development

Alles, was Sie über Node.js wissen müssen – und wie Sie mit einer Node.js-Agentur zusammenarbeiten

Sie denken darüber nach, Node.js für Ihr nächstes Projekt einzusetzen? Entdecken Sie die wichtigsten Vorteile, das typische Leistungsspektrum und finden Sie die richtige Node.js-Entwicklungsagentur, die Ihre Vision zum Leben erweckt. Legen wir los.

Olaf Kühn

18. Aug. 20235 Min. Lesezeit

Modern digital finance concept showing a secure fintech platform with mobile banking, blockchain, and AI-powered analytics integrated into financial services.
Software architectureSoftware development

Die beste Programmiersprache für eine E-Commerce-Website: Ein umfassender Q&A-Leitfaden

Wer eine E‑Commerce‑Website entwickelt, trifft mit der Wahl der richtigen Programmiersprache eine Grundsatzentscheidung – sie bildet das Fundament Ihres Online‑Shops. Bei der Vielzahl an Optionen kann die Auswahl allerdings herausfordernd sein. Um Sie in diesem entscheidenden Prozess zu unterstützen, haben wir einen umfassenden Frage‑Antwort‑Leitfaden erstellt, der die wichtigsten Programmiersprachen, ihre Vorteile und ihre Rolle beim Aufbau erfolgreicher Online‑Geschäfte beleuchtet. Entdecken wir die Welt der E‑Commerce‑Entwicklung und finden die Sprache, die am besten zu Ihren individuellen Anforderungen passt.

Marek Majdak

29. Aug. 20234 Min. Lesezeit

Kürzlich hinzugefügt

A cloud operations team monitoring infrastructure health, resource provisioning, and security dashboards across multiple screens
Cloud OptimizationFinOpsInfrastructure

Cloud-Infrastrukturmanagement

So betreiben Sie eine skalierbare, sichere und kosteneffiziente Cloud-Infrastruktur: Grundpfeiler, FinOps, KI-gestützte Ops und die Auswahl des richtigen Partners.

Alexander Stasiak

12. Juni 20268 Min. Lesezeit

A compliance dashboard displaying SOC2, ISO 27001, GDPR, and HIPAA controls with real-time drift detection in a cloud environment
GDPR complianceSOC2Cloud Compliance

Cloud-Sicherheits-Compliance

Ein Schritt-für-Schritt-Leitfaden zur Compliance nach SOC 2, ISO 27001, DSGVO und HIPAA in der Cloud – inklusive der Einführung von Compliance-as-Code für sicheres Skalieren.

Alexander Stasiak

09. Juni 202610 Min. Lesezeit

A digital dashboard showing AI business automation workflows connecting multiple SaaS apps, with productivity metrics and task automation analytics
AI AutomationWorkflow AutomationEnterprise Tools

Die besten KI-Tools zur Automatisierung von Geschäftsprozessen für 2026

Der Markt für KI-gestützte Unternehmensautomatisierung ist auf Kurs, von 2,9 Mrd. $ im Jahr 2023 auf 25 Mrd. $ bis 2027 zu wachsen, und Fortune-500-Unternehmen berichten bereits von 30–50 % Effizienzsteigerungen. Doch bei einer Bandbreite an Plattformen von No-Code-Zapier-Workflows bis zu Enterprise-Deployments mit UiPath besteht die eigentliche Herausforderung nicht darin, ob automatisiert werden sollte – sondern darin, das richtige Tool für die Größe, den Tech-Stack und den technischen Reifegrad Ihres Teams zu wählen. Dieser Leitfaden stellt die acht führenden KI-Automatisierungsplattformen des Jahres 2026 vor, vergleicht ihre Preise und Leistungsmerkmale im direkten Vergleich und bietet ein klares Framework, um das passende Tool auf Ihre konkreten Geschäftsziele abzustimmen.

Alexander Stasiak

16. Apr. 202611 Min. Lesezeit

KI-Chatbot für Ihre Unternehmenswebsite: Was CEOs vor dem Kauf wissen sollten
ChatbotsAI AgentsWebsite Management Tools

KI-Chatbot für Ihre Unternehmenswebsite: Was CEOs vor dem Kauf wissen sollten

Die meisten Unternehmen, die ihrer Website einen KI-Chatbot hinzufügen, machen es falsch. Sie wählen ein generisches Widget, koppeln es an eine FAQ-Seite und wundern sich, warum sich nichts ändert. Das Problem ist nicht die Technologie, sondern der Ansatz. Hier erfahren Sie, was ein gut konzipierter KI-Chatbot für eine Unternehmenswebsite wirklich leistet, was er kostet und welche Fragen Sie stellen sollten, bevor Sie einen Vertrag mit einem Anbieter unterschreiben.

Alexander Stasiak

15. Apr. 20265 Min. Lesezeit

A SaaS onboarding flow dashboard showing user progress milestones, activation rate charts, and a checklist of completed setup steps
SaaSCustomer ExperienceProduct design

Wie Sie die Time-to-Productivity im SaaS-Onboarding verkürzen

Zwischen 40 und 60 Prozent der SaaS-Neuanmeldungen springen ab, bevor sie überhaupt spürbaren Mehrwert erleben — nicht, weil das Produkt schlecht ist, sondern weil das Onboarding zu langsam ist. Die Time to Productivity ist die Kennzahl, die SaaS-Unternehmen mit hoher Kundenbindung von denen trennt, die in einer Churn-Spirale feststecken. Dieses Playbook liefert Verantwortlichen in Product, Customer Success und Onboarding ein konkretes Framework, um produktive Nutzung zu definieren, Engpässe zu identifizieren und die Einarbeitungszeit von Wochen auf Tage zu verkürzen.

Alexander Stasiak

23. März 202615 Min. Lesezeit

A developer reviewing AI-generated output on a monitor, with highlighted text flagged as potentially hallucinated content against a dark technical interface
AIAI AutomationLLM Security

LLM-Halluzinationen erklärt

Jedes LLM, das Sie bereitstellen, wird gelegentlich selbstbewusst klingende, flüssig formulierte und völlig falsche Informationen erzeugen. Das ist kein Bug, der sich per Patch beheben lässt - es ist ein grundlegendes Merkmal der Funktionsweise dieser Modelle. Dieser Artikel erklärt, warum Halluzinationen auftreten, wie sie in realen Enterprise-Use-Cases aussehen und wie Sie KI-Systeme entwickeln, die verhindern, dass halluzinierte Inhalte Ihre Nutzer, Ihre Kunden oder Ihre Codebasis erreichen.

Alexander Stasiak

22. März 202616 Min. Lesezeit

Bereit, Ihr Know-how mit KI zu zentralisieren?

Beginnen Sie ein neues Kapitel im Wissensmanagement – wo der KI-Assistent zum zentralen Pfeiler Ihrer digitalen Support-Erfahrung wird.

Kostenlose Beratung buchen

Arbeiten Sie mit einem Team, dem erstklassige Unternehmen vertrauen.

Rainbow logo
Siemens logo
Toyota logo

Wir entwickeln, was als Nächstes kommt.

Unternehmen

Branchen

Startup Development House sp. z o.o.

Aleje Jerozolimskie 81

Warsaw, 02-001

VAT-ID: PL5213739631

KRS: 0000624654

REGON: 364787848

Kontakt

hello@startup-house.com

Unser Büro: +48 789 011 336

Neues Geschäft: +48 798 874 852

Folgen Sie uns

Award
logologologologo

Copyright © 2026 Startup Development House sp. z o.o.

EU-ProjekteDatenschutzerklärung