NestJS MongoDB Blog API-mall – Fullständig REST-backend för bloggar

Att bygga en skalbar blogg-backend kräver en välstrukturerad arkitektur, ett autentiseringssystem och korrekt dokumenterade API:er. NestJS MongoDB Blog API är en produktionsklar backend-mall utformad för att hjälpa utvecklare att snabbt bygga moderna bloggplattformar med hjälp av NestJS-, MongoDB- JWT authenticationoch Swagger-dokumentation .

Det här projektet tillhandahåller ett komplett RESTful API inklusive moduler för användare, inlägg, kategorier, taggar, kommentarer, autentisering och rollbaserad åtkomstkontroll .

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

Vad är NestJS MongoDB Blog API

NestJS MongoDB Blog API är en backend-mall med öppen källkod byggd med NestJS 11 och MongoDB som tillhandahåller ett fullt fungerande REST API för bloggar.

Den är utformad för att fungera som en grund för att bygga:

  • Bloggplattformar

  • Headless CMS-system

  • API:er för innehållspublicering

  • Dokumentationswebbplatser

  • Bloggar om utvecklarportföljer

Projektet följer den modulära arkitekturen som rekommenderas av NestJS, vilket säkerställer skalbarhet och underhållbarhet.

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

Viktiga funktioner

Autentisering och auktorisering

API:et inkluderar ett säkert autentiseringssystem som använder JWT-tokens.

De viktigaste autentiseringsfunktionerna inkluderar:

  • JWT- åtkomst- och uppdateringstokens

  • Rollbaserad åtkomstkontroll(RBAC)

  • Lösenordshashning med bcrypt

  • Skyddade API-rutter med Guards

  • Mekanism för tokenuppdatering

Tre standardanvändarroller stöds:

  • Administration

  • Författare

  • Läsare

Detta gör det enkelt att hantera behörigheter över olika API-slutpunkter.

Fullständiga bloggmoduler

Projektet innehåller flera fullt implementerade moduler som täcker all grundläggande bloggfunktionalitet.

Aut.modul

Hanterar autentisering och användarsessioner.

Slutpunkter inkluderar:

  • POST /auth/register

  • POST /auth/login

  • POST /auth/refresh

  • POST /auth/logout

  • GET /auth/profile

Användarmodul

Hanterar användarkonton och profiler.

Slutpunkter:

  • GET /users

  • GET /users/:id

  • PATCH /users/:id

  • DELETE /users/:id

Skrivåtgärder kräver administratörsbehörighet .

Inläggsmodul

Inläggsmodulen hanterar blogginnehåll.

Funktioner inkluderar:

  • Paginering

  • Filtrering efter kategori, tagg eller författare

  • Sortering

  • Fulltextsökning

  • Utvalda inlägg

Slutpunkter:

  • GET /posts

  • GET /posts/featured

  • GET /posts/:slug

  • POST /posts

  • PATCH /posts/:id

  • DELETE /posts/:id

Kategorier Modul

Organiserar blogginlägg i kategorier.

Slutpunkter:

  • GET /categories

  • GET /categories/:slug

  • POST /categories

  • PATCH /categories/:id

  • DELETE /categories/:id

Taggmodul

Tillåter flexibel taggning för blogginlägg.

Slutpunkter:

  • GET /tags

  • GET /tags/:slug

  • POST /tags

  • PATCH /tags/:id

  • DELETE /tags/:id

Kommentarmodul

Stöder kommentarstrådar och kapslade svar.

Slutpunkter:

  • GET /comments/post/:postId

  • GET /comments/:id/replies

  • POST /comments

  • PATCH /comments/:id

  • DELETE /comments/:id

API-funktioner

Paginering

Alla listslutpunkter stöder paginering.

Exempel:

GET /posts?page=1&limit=6

Filtrering

Inlägg kan filtreras efter kategori, tagg eller författare.

Exempel:

GET /posts?category=web-development

Fulltextsökning

Sökfunktionalitet är implementerad på inlägg.

Exempel:

GET /posts?search=nestjs+mongodb

Sortering

API-svar kan sorteras efter olika fält.

Exempel:

GET /posts?sortBy=createdAt&sortOrder=desc

Automatisk sluggenerering

När man skapar inlägg genererar systemet automatiskt en URL-vänlig slug från titeln med hjälp av slugify .

Exempel:

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

Beräkning av lästid

API:et beräknar automatiskt uppskattad lästid baserat på inläggens innehållslängd.

Konsekvent API-svarsformat

Alla svar följer en standardstruktur:

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

Detta förbättrar frontend-integration och felsökning.

Teknikstack

Backend-plattformen är byggd med en modern Node.js-stack.

Lager Teknologi
Ram NestJS 11
Språk TypeScript 5.7
Databas MongoDB 8
ODM Mungo 8
Autentisering Passport.js + JWT
Godkännande klassvaliderare
API-dokumentation Swagger OpenAPI
Lösenordssäkerhet bcrypt
Snigelgenerator slugify
Testning Skoj

Projektstruktur

Projektet följer en modulär arkitektur.

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

Viktiga komponenter inkluderar:

  • DTO-validering

  • Mongoose-scheman

  • Globala undantagsfilter

  • Svarsavlyssnare

  • JWT-vakter

  • Rolldekoratörer

Denna struktur håller kodbasen organiserad och skalbar.

Hur man installerar och kör projektet

Förkunskapskrav

Innan du installerar, se till att du har:

  • Node.js 18.17+

  • MongoDB 6+

  • npm, garn eller pnpm

Klona arkivet

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

Installera beroenden

npm install

Konfigurera miljövariabler

Kopiera exempelmiljöfilen:

cp .env.example .env

Uppdatera följande värden:

MONGODB_URI= 
JWT_ACCESS_SECRET= 
JWT_REFRESH_SECRET= 

Seed the Database

Fyll databasen med exempeldata:

npm run seed

För att återställa och återställa sådden:

npm run seed:refresh

Starta utvecklingsservern

npm run start:dev

API-bas-URL:

http://localhost:3000/api/v1

Swagger-dokumentation:

http://localhost:3000/api/docs

Standard seedad data

Seed-skriptet genererar exempeldata för testning.

Enhet Räkna
Användare 5
Kategorier 5
Taggar 28
Inlägg 10
Kommentarer 6

Standardinloggningsuppgifter

Lösenord för alla seedade användare:

admin123

Konton:

Roll E-post
Administration [email protected]
Författare [email protected]
Författare [email protected]
Författare [email protected]
Läsare [email protected]

Swagger API-dokumentation

Interaktiv API-dokumentation finns tillgänglig på:

http://localhost:3000/api/docs

Swagger erbjuder:

  • Interaktiv slutpunktstestning

  • JWT authenticationstöd

  • Dokumentation av schema för begäran och svar

Varför använda detta arkiv

NestJS MongoDB Blog API är en kraftfull utgångspunkt för utvecklare som bygger ett modernt blogg-backend.

Fördelar inkluderar:

  • Ren NestJS modulär arkitektur

  • Inbyggd autentisering och RBAC

  • Färdig att använda Swagger API-dokumentation

  • MongoDB-integration med Mongoose

  • Databasindelningssystem

  • Produktionsklar projektstruktur

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