NestJS MongoDB Blog-API-Vorlage – Vollständiges REST-Backend für Blogs

Für den Aufbau eines skalierbaren Blog-Backends sind eine gut strukturierte Architektur, ein zuverlässiges Authentifizierungssystem und eine umfassende API-Dokumentation erforderlich. Die NestJS MongoDB Blog API ist eine produktionsreife Backend-Vorlage, die Entwicklern hilft, schnell moderne Blog-Plattformen mit NestJS, MongoDB JWT authenticationund Swagger-Dokumentation zu erstellen .

Dieses Projekt bietet eine vollständige RESTful-API inklusive Modulen für Benutzer, Beiträge, Kategorien, Schlagwörter, Kommentare, Authentifizierung und rollenbasierte Zugriffskontrolle .

Repository: https://github.com/bfotool/nestjs-mongodb-blog-base

Was ist die NestJS MongoDB Blog-API?

Die NestJS MongoDB Blog API ist eine Open-Source-Backend-Vorlage, die mit NestJS 11 und MongoDB erstellt wurde und eine voll funktionsfähige Blog-REST-API bereitstellt.

Es ist als Grundlage für den Aufbau von Gebäuden konzipiert:

  • Blog-Plattformen

  • Headless CMS-Systeme

  • APIs für die Inhaltsveröffentlichung

  • Dokumentationswebseiten

  • Entwickler-Portfolio-Blogs

Das Projekt folgt der von NestJS empfohlenen modularen Architektur, wodurch Skalierbarkeit und Wartbarkeit gewährleistet werden.

Repository: https://github.com/bfotool/nestjs-mongodb-blog-base

Hauptmerkmale

Authentifizierung und Autorisierung

Die API beinhaltet ein sicheres Authentifizierungssystem mit JWT-Tokens.

Zu den wichtigsten Authentifizierungsfunktionen gehören:

  • JWT- Zugriffs- und Aktualisierungstoken

  • Rollenbasierte Zugriffskontrolle(RBAC)

  • Passwort-Hashing mit bcrypt

  • Geschützte API-Routen mithilfe von Guards

  • Token-Aktualisierungsmechanismus

Es werden drei Standardbenutzerrollen unterstützt:

  • Administrator

  • Autor

  • Leser

Dadurch wird die Verwaltung von Berechtigungen über verschiedene API-Endpunkte hinweg vereinfacht.

Vollständige Blog-Module

Das Projekt umfasst mehrere vollständig implementierte Module, die alle Kernfunktionen des Blogs abdecken.

Authentifizierungsmodul

Verwaltet Authentifizierung und Benutzersitzungen.

Zu den Endpunkten gehören:

  • POST /auth/register

  • POST /auth/login

  • POST /auth/refresh

  • POST /auth/logout

  • GET /auth/profile

Benutzermodul

Verwaltet Benutzerkonten und -profile.

Endpunkte:

  • GET /users

  • GET /users/:id

  • PATCH /users/:id

  • DELETE /users/:id

Für Schreibvorgänge sind Administratorrechte erforderlich .

Beitragsmodul

Das Modul „Beiträge“ verwaltet Blog-Inhalte.

Zu den Merkmalen gehören:

  • Pagination

  • Filtern nach Kategorie, Schlagwort oder Autor

  • Sortierung

  • Volltextsuche

  • Ausgewählte Beiträge

Endpunkte:

  • GET /posts

  • GET /posts/featured

  • GET /posts/:slug

  • POST /posts

  • PATCH /posts/:id

  • DELETE /posts/:id

Kategorienmodul

Ordnet Blogbeiträge in Kategorien ein.

Endpunkte:

  • GET /categories

  • GET /categories/:slug

  • POST /categories

  • PATCH /categories/:id

  • DELETE /categories/:id

Tags-Modul

Ermöglicht flexible Verschlagwortung von Blogbeiträgen.

Endpunkte:

  • GET /tags

  • GET /tags/:slug

  • POST /tags

  • PATCH /tags/:id

  • DELETE /tags/:id

Kommentarmodul

Unterstützt Kommentarstränge und verschachtelte Antworten.

Endpunkte:

  • GET /comments/post/:postId

  • GET /comments/:id/replies

  • POST /comments

  • PATCH /comments/:id

  • DELETE /comments/:id

API-Funktionen

Pagination

Alle Listenendpunkte unterstützen die Paginierung.

Beispiel:

GET /posts?page=1&limit=6

Filterung

Beiträge können nach Kategorie, Schlagwort oder Autor gefiltert werden.

Beispiel:

GET /posts?category=web-development

Volltextsuche

Die Suchfunktion ist in den Beiträgen implementiert.

Beispiel:

GET /posts?search=nestjs+mongodb

Sortierung

API-Antworten können nach verschiedenen Feldern sortiert werden.

Beispiel:

GET /posts?sortBy=createdAt&sortOrder=desc

Automatische Slug-Generierung

Beim Erstellen von Beiträgen generiert das System automatisch einen URL-freundlichen Slug aus dem Titel mithilfe von slugify .

Beispiel:

Building REST APIs with NestJS 
→ building-rest-apis-with-nestjs 

Berechnung der Lesezeit

Die API berechnet automatisch die geschätzte Lesezeit anhand der Inhaltslänge der Beiträge.

Einheitliches API-Antwortformat

Alle Antworten folgen einer Standardstruktur:

{ 
  "success": true, 
  "data": {}, 
  "timestamp": "2026-01-01T10:00:00Z" 
} 

Dies verbessert die Frontend-Integration und das Debugging.

Technologie-Stack

Das Backend basiert auf einem modernen Node.js-Stack.

Schicht Technologie
Rahmen NestJS 11
Sprache TypeScript 5.7
Datenbank MongoDB 8
ODM Mungo 8
Authentifizierung Passport.js + JWT
Validierung Klassenvalidator
API-Dokumentation Swagger OpenAPI
Passwortsicherheit bcrypt
Schneckengenerator slugify
Testen Scherz

Projektstruktur

Das Projekt verfolgt einen modularen Aufbau.

src/ 
├── auth/ 
├── users/ 
├── posts/ 
├── categories/ 
├── tags/ 
├── comments/ 
├── common/ 
└── seed/ 

Wichtige Bestandteile sind:

  • DTO-Validierung

  • Mongoose-Schemas

  • Globale Ausnahmefilter

  • Reaktionsabfanggeräte

  • JWT-Schutzvorrichtungen

  • Rollendekorateure

Diese Struktur sorgt für eine übersichtliche und skalierbare Codebasis.

So installieren und starten Sie das Projekt

Voraussetzungen

Vor der Installation stellen Sie sicher, dass Sie Folgendes haben:

  • Node.js 18.17+

  • MongoDB 6+

  • npm, yarn oder pnpm

Repository klonen

git clone https://github.com/bfotool/nestjs-mongodb-blog-base 
cd nestjs-mongodb-blog-base 

Abhängigkeiten installieren

npm install

Umgebungsvariablen konfigurieren

Kopieren Sie die Beispielumgebungsdatei:

cp .env.example .env

Aktualisieren Sie die folgenden Werte:

MONGODB_URI= 
JWT_ACCESS_SECRET= 
JWT_REFRESH_SECRET= 

Datenbank initialisieren

Füllen Sie die Datenbank mit Beispieldaten:

npm run seed

Zum Zurücksetzen und Neuinstallieren:

npm run seed:refresh

Starten Sie den Entwicklungsserver

npm run start:dev

API-Basis-URL:

http://localhost:3000/api/v1

Swagger-Dokumentation:

http://localhost:3000/api/docs

Standardmäßig vorgegebene Daten

Das Seed-Skript generiert Beispieldaten zum Testen.

Juristische Person Zählen
Benutzer 5
Kategorien 5
Tags 28
Beiträge 10
Kommentare 6

Standard-Anmeldedaten

Passwort für alle registrierten Benutzer:

admin123

Konten:

Rolle E-Mail
Administrator [email protected]
Autor [email protected]
Autor [email protected]
Autor [email protected]
Leser [email protected]

Swagger-API-Dokumentation

Die interaktive API-Dokumentation ist verfügbar unter:

http://localhost:3000/api/docs

Swagger bietet Folgendes:

  • Interaktives Endpunkt-Testing

  • JWT authenticationUnterstützung

  • Dokumentation des Anfrage- und Antwortschemas

Warum dieses Repository nutzen?

Die NestJS MongoDB Blog API ist ein leistungsstarker Ausgangspunkt für Entwickler, die ein modernes Blog-Backend aufbauen.

Zu den Vorteilen gehören:

  • Saubere modulare NestJS-Architektur

  • Integrierte Authentifizierung und rollenbasierte Zugriffskontrolle

  • Sofort einsatzbereite Swagger-API-Dokumentation

  • MongoDB-Integration mit Mongoose

  • Datenbank- Initiierungssystem

  • Produktionsreife Projektstruktur

Repository: https://github.com/bfotool/nestjs-mongodb-blog-base