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/registerPOST /auth/loginPOST /auth/refreshPOST /auth/logoutGET /auth/profile
Benutzermodul
Verwaltet Benutzerkonten und -profile.
Endpunkte:
GET /usersGET /users/:idPATCH /users/:idDELETE /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 /postsGET /posts/featuredGET /posts/:slugPOST /postsPATCH /posts/:idDELETE /posts/:id
Kategorienmodul
Ordnet Blogbeiträge in Kategorien ein.
Endpunkte:
GET /categoriesGET /categories/:slugPOST /categoriesPATCH /categories/:idDELETE /categories/:id
Tags-Modul
Ermöglicht flexible Verschlagwortung von Blogbeiträgen.
Endpunkte:
GET /tagsGET /tags/:slugPOST /tagsPATCH /tags/:idDELETE /tags/:id
Kommentarmodul
Unterstützt Kommentarstränge und verschachtelte Antworten.
Endpunkte:
GET /comments/post/:postIdGET /comments/:id/repliesPOST /commentsPATCH /comments/:idDELETE /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 | |
|---|---|
| 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



