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/registerPOST /auth/loginPOST /auth/refreshPOST /auth/logoutGET /auth/profile
Användarmodul
Hanterar användarkonton och profiler.
Slutpunkter:
GET /usersGET /users/:idPATCH /users/:idDELETE /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 /postsGET /posts/featuredGET /posts/:slugPOST /postsPATCH /posts/:idDELETE /posts/:id
Kategorier Modul
Organiserar blogginlägg i kategorier.
Slutpunkter:
GET /categoriesGET /categories/:slugPOST /categoriesPATCH /categories/:idDELETE /categories/:id
Taggmodul
Tillåter flexibel taggning för blogginlägg.
Slutpunkter:
GET /tagsGET /tags/:slugPOST /tagsPATCH /tags/:idDELETE /tags/:id
Kommentarmodul
Stöder kommentarstrådar och kapslade svar.
Slutpunkter:
GET /comments/post/:postIdGET /comments/:id/repliesPOST /commentsPATCH /comments/:idDELETE /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 | lä[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



