Det kræver en velstruktureret arkitektur, et godkendelsessystem og korrekt dokumenterede API'er at opbygge en skalerbar blog-backend. NestJS MongoDB Blog API'en er en produktionsklar backend-skabelon, der er designet til at hjælpe udviklere med hurtigt at bygge moderne blogplatforme ved hjælp af NestJS-, MongoDB- JWT authenticationog Swagger-dokumentation .
Dette projekt leverer en komplet RESTful API, inklusive moduler til brugere, indlæg, kategorier, tags, kommentarer, godkendelse og rollebaseret adgangskontrol .
Arkiv: https://github.com/bfotool/nestjs-mongodb-blog-base
Hvad er NestJS MongoDB Blog API
NestJS MongoDB Blog API er en open source-backend-skabelon bygget med NestJS 11 og MongoDB, der leverer en fuldt funktionel blog-REST API.
Den er designet til at fungere som fundament for at bygge:
Blogplatforme
Headless CMS-systemer
API'er til indholdsudgivelse
Dokumentationswebsteder
Blogs om udviklerportefølje
Projektet følger den modulære arkitektur anbefalet af NestJS, hvilket sikrer skalerbarhed og vedligeholdelse.
Arkiv: https://github.com/bfotool/nestjs-mongodb-blog-base
Nøglefunktioner
Godkendelse og autorisation
API'en inkluderer et sikkert godkendelsessystem, der bruger JWT-tokens.
De vigtigste godkendelsesfunktioner omfatter:
JWT- adgangs- og opdateringstokens
Rollebaseret adgangskontrol(RBAC)
Adgangskodehashing med bcrypt
Beskyttede API-ruter ved hjælp af Guards
Mekanisme for tokenopdatering
Tre standardbrugerroller understøttes:
Admin
Forfatter
Læser
Dette gør det nemt at administrere tilladelser på tværs af forskellige API-slutpunkter.
Fuld blogmoduler
Projektet inkluderer adskillige fuldt implementerede moduler, der dækker alle kernefunktioner i bloggen.
Godkendelsesmodul
Håndterer godkendelse og brugersessioner.
Endepunkter inkluderer:
POST /auth/registerPOST /auth/loginPOST /auth/refreshPOST /auth/logoutGET /auth/profile
Brugermodul
Administrerer brugerkonti og profiler.
Endepunkter:
GET /usersGET /users/:idPATCH /users/:idDELETE /users/:id
Skrivehandlinger kræver administratorrettigheder .
Indlægsmodul
Indlægsmodulet administrerer blogindhold.
Funktioner inkluderer:
Paginering
Filtrering efter kategori, tag eller forfatter
Sortering
Fuldtekstsøgning
Fremhævede indlæg
Endepunkter:
GET /postsGET /posts/featuredGET /posts/:slugPOST /postsPATCH /posts/:idDELETE /posts/:id
Kategorier Modul
Organiserer blogindlæg i kategorier.
Endepunkter:
GET /categoriesGET /categories/:slugPOST /categoriesPATCH /categories/:idDELETE /categories/:id
Tags-modul
Tillader fleksibel tagging til blogindlæg.
Endepunkter:
GET /tagsGET /tags/:slugPOST /tagsPATCH /tags/:idDELETE /tags/:id
Kommentarmodul
Understøtter kommentartråde og indbyggede svar.
Endepunkter:
GET /comments/post/:postIdGET /comments/:id/repliesPOST /commentsPATCH /comments/:idDELETE /comments/:id
API-funktioner
Paginering
Alle listeslutpunkter understøtter paginering.
Eksempel:
GET /posts?page=1&limit=6
Filtrering
Indlæg kan filtreres efter kategori, tag eller forfatter.
Eksempel:
GET /posts?category=web-development
Fuldtekstsøgning
Søgefunktionalitet er implementeret på opslag.
Eksempel:
GET /posts?search=nestjs+mongodb
Sortering
API-svar kan sorteres efter forskellige felter.
Eksempel:
GET /posts?sortBy=createdAt&sortOrder=desc
Automatisk generering af slugs
Når systemet opretter indlæg, genererer det automatisk en URL-venlig slug ud fra titlen ved hjælp af slugify .
Eksempel:
Building REST APIs with NestJS
→ building-rest-apis-with-nestjs
Beregning af læsetid
API'en beregner automatisk den estimerede læsetid baseret på indholdets længde i opslagene.
Konsistent API-svarformat
Alle svar følger en standardstruktur:
{
"success": true,
"data": {},
"timestamp": "2026-01-01T10:00:00Z"
}
Dette forbedrer frontend-integration og fejlfinding.
Teknologistak
Backend'en er bygget ved hjælp af en moderne Node.js-stak.
| Lag | Teknologi |
|---|---|
| Ramme | NestJS 11 |
| Sprog | TypeScript 5.7 |
| Database | MongoDB 8 |
| ODM | Mongoose 8 |
| Godkendelse | Passport.js + JWT |
| Validering | klassevalidator |
| API-dokumentation | Swagger OpenAPI |
| Adgangskodesikkerhed | bcrypt |
| Sluggenerator | slugify |
| Testning | Spøg |
Projektstruktur
Projektet følger en modulær arkitektur.
src/
├── auth/
├── users/
├── posts/
├── categories/
├── tags/
├── comments/
├── common/
└── seed/
Vigtige komponenter omfatter:
DTO-validering
Mongoose-skemaer
Globale undtagelsesfiltre
Responsinterceptors
JWT-vagter
Rolledekoratører
Denne struktur holder kodebasen organiseret og skalerbar.
Sådan installeres og køres projektet
Forudsætninger
Før installation skal du sørge for at have:
Node.js 18.17+
MongoDB 6+
npm, garn eller pnpm
Klon arkivet
git clone https://github.com/bfotool/nestjs-mongodb-blog-base
cd nestjs-mongodb-blog-base
Installer afhængigheder
npm install
Konfigurer miljøvariabler
Kopiér eksempelmiljøfilen:
cp .env.example .env
Opdater følgende værdier:
MONGODB_URI=
JWT_ACCESS_SECRET=
JWT_REFRESH_SECRET=
Seed-databasen
Udfyld databasen med eksempeldata:
npm run seed
Sådan nulstilles og genbehandles:
npm run seed:refresh
Start udviklingsserveren
npm run start:dev
API-basis-URL:
http://localhost:3000/api/v1
Swagger-dokumentation:
http://localhost:3000/api/docs
Standard seedede data
Seed-scriptet genererer eksempeldata til testning.
| Enhed | Tælle |
|---|---|
| Brugere | 5 |
| Kategorier | 5 |
| Tags | 28 |
| Indlæg | 10 |
| Kommentarer | 6 |
Standard loginoplysninger
Adgangskode til alle seedede brugere:
admin123
Konti:
| Rolle | |
|---|---|
| Admin | [email protected] |
| Forfatter | [email protected] |
| Forfatter | [email protected] |
| Forfatter | [email protected] |
| Læser | læ[email protected] |
Swagger API-dokumentation
Interaktiv API-dokumentation er tilgængelig på:
http://localhost:3000/api/docs
Swagger tilbyder:
Interaktiv endpoint-testning
JWT authenticationstøtte
Dokumentation af anmodnings- og svarskema
Hvorfor bruge dette arkiv
NestJS MongoDB Blog API'en er et stærkt udgangspunkt for udviklere, der bygger et moderne blog-backend.
Fordele inkluderer:
Ren NestJS modulær arkitektur
Indbygget godkendelse og RBAC
Brugsklar Swagger API-dokumentation
MongoDB-integration ved hjælp af Mongoose
Database seeding system
Produktionsklar projektstruktur



