NestJS für TypeScript: Vollständiger Leitfaden mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einführung in NestJS

\n\n

NestJS (Nest) ist ein progressives Framework zur Erstellung effizienter, skalierbarer und zuverlässiger Serveranwendungen auf Node.js. Es verwendet TypeScript als Hauptsprache und ist von der Architektur von Angular inspiriert. NestJS bietet eine vorgefertigte Anwendungsarchitektur, die Entwicklern hilft, gut strukturierten, testbaren und wartbaren Code zu erstellen.

\n\n

Das Hauptziel von NestJS ist es, das Problem des Fehlens einer klaren Architektur im Node.js-Ökosystem zu lösen. Im Gegensatz zu Express oder Fastify, die minimalistisch sind und keine Struktur vorgeben, bietet NestJS vorgefertigte Abstraktionen: Module, Controller, Services, Provider und Middleware. Dies ist besonders nützlich für große Unternehmensprojekte, bei denen Vorhersagbarkeit und Standardisierung des Codes wichtig sind.

\n\n

NestJS ist auf HTTP-Frameworks aufgebaut (standardmäßig Express, aber Fastify kann verwendet werden) und fügt ihnen ein leistungsstarkes System zur Abhängigkeitsinjektion (Dependency Injection), Decorators, Guards, Interceptors, Pipes und Filters hinzu. Das Framework nutzt aktiv TypeScript-Decorators, was den Code deklarativ und lesbar macht.

\n\n

Installation von NestJS

\n\n

Für die Installation von NestJS benötigen Sie Node.js (Version 16 oder höher) und einen Paketmanager npm (oder yarn, pnpm).

\n\n

Der einfachste Weg, um zu beginnen, ist die Verwendung der Nest CLI:

\n\n
npm install -g @nestjs/cli\nnest new my-nest-project\ncd my-nest-project\nnpm run start:dev
\n\n

Wenn Sie NestJS in einem bereits bestehenden Projekt installieren möchten:

\n\n
npm install @nestjs/core @nestjs/common @nestjs/platform-express reflect-metadata rxjs typescript @types/node
\n\n

Außerdem müssen TypeScript und ts-node für die Entwicklung installiert werden:

\n\n
npm install -D typescript @types/node ts-node
\n\n

Wichtig: NestJS verwendet die Bibliothek reflect-metadata für die Arbeit mit Decorators. Stellen Sie sicher, dass sie in der Hauptdatei main.ts importiert wird:

\n\n
import "reflect-metadata";
\n\n

Schnellstart mit Codebeispiel

\n\n

Erstellen wir eine einfache REST-API-Anwendung mit einem Endpunkt, der eine Begrüßung zurückgibt.

\n\n

Projektstruktur:

\n
src/\n├── app.controller.ts\n├── app.module.ts\n├── app.service.ts\n└── main.ts
\n\n

main.ts — Einstiegspunkt:

\n
import { NestFactory } from '@nestjs/core';\nimport { AppModule } from './app.module';\n\nasync function bootstrap() {\n  const app = await NestFactory.create(AppModule);\n  await app.listen(3000);\n  console.log('Server is running on http://localhost:3000');\n}\nbootstrap();
\n\n

app.module.ts — Root-Modul:

\n
import { Module } from '@nestjs/common';\nimport { AppController } from './app.controller';\nimport { AppService } from './app.service';\n\n@Module({\n  imports: [],\n  controllers: [AppController],\n  providers: [AppService],\n})\nexport class AppModule {}
\n\n

app.controller.ts — Controller:

\n
import { Controller, Get } from '@nestjs/common';\nimport { AppService } from './app.service';\n\n@Controller()\nexport class AppController {\n  constructor(private readonly appService: AppService) {}\n\n  @Get()\n  getHello(): string {\n    return this.appService.getHello();\n  }\n}
\n\n

app.service.ts — Service (Geschäftslogik):

\n
import { Injectable } from '@nestjs/common';\n\n@Injectable()\nexport class AppService {\n  getHello(): string {\n    return 'Hello World!';\n  }\n}
\n\n

Starten Sie die Anwendung mit dem Befehl npm run start:dev und öffnen Sie http://localhost:3000. Sie sehen "Hello World!".

\n\n

Grundlegende Methoden und Funktionen von NestJS

\n\n

Betrachten wir 10 Schlüsselelemente von NestJS, die in jedem Projekt verwendet werden.

\n\n

1. @Module() — Modul-Decorator

\n

Was es tut: Definiert eine Kla

Empfehlungen