Å bygge en skalerbar blogg-backend krever en godt strukturert arkitektur, et autentiseringssystem og riktig dokumenterte API-er. NestJS MongoDB Blog API er en produksjonsklar backend-mal som er utviklet for å hjelpe utviklere med raskt å bygge moderne bloggplattformer ved hjelp av NestJS-, MongoDB- JWT authenticationog Swagger-dokumentasjon .
Dette prosjektet tilbyr et komplett RESTful API, inkludert moduler for brukere, innlegg, kategorier, tagger, kommentarer, autentisering og rollebasert tilgangskontroll .
Arkiv: https://github.com/bfotool/nestjs-mongodb-blog-base
Hva er NestJS MongoDB Blog API
NestJS MongoDB Blog API er en åpen kildekode-mal for backend bygget med NestJS 11 og MongoDB, som tilbyr et fullt funksjonelt REST API for blogger.
Den er utformet for å tjene som et fundament for bygging av:
Bloggplattformer
Headless CMS-systemer
API-er for innholdspublisering
Dokumentasjonsnettsteder
Blogger om utviklerportefølje
Prosjektet følger den modulære arkitekturen anbefalt av NestJS, noe som sikrer skalerbarhet og vedlikeholdbarhet.
Arkiv: https://github.com/bfotool/nestjs-mongodb-blog-base
Viktige funksjoner
Autentisering og autorisasjon
API-et inkluderer et sikkert autentiseringssystem som bruker JWT-tokens.
De viktigste autentiseringsfunksjonene inkluderer:
JWT- tilgangs- og oppdateringstokener
Rollebasert tilgangskontroll(RBAC)
Passordhashing med bcrypt
Beskyttede API-ruter ved hjelp av Guards
Mekanisme for tokenoppdatering
Tre standard brukerroller støttes:
Admin
Forfatter
Leser
Dette gjør det enkelt å administrere tillatelser på tvers av forskjellige API-endepunkter.
Fullstendige bloggmoduler
Prosjektet inkluderer flere fullt implementerte moduler som dekker all kjernefunksjonalitet i bloggen.
Autorisasjonsmodul
Håndterer autentisering og brukerøkter.
Endepunktene inkluderer:
POST /auth/registerPOST /auth/loginPOST /auth/refreshPOST /auth/logoutGET /auth/profile
Brukermodul
Administrerer brukerkontoer og profiler.
Endepunkter:
GET /usersGET /users/:idPATCH /users/:idDELETE /users/:id
Skriveoperasjoner krever administratorrettigheter .
Innleggsmodul
Innleggsmodulen administrerer blogginnhold.
Funksjoner inkluderer:
Paginering
Filtrering etter kategori, tagg eller forfatter
Sortering
Fulltekstsøk
Utvalgte innlegg
Endepunkter:
GET /postsGET /posts/featuredGET /posts/:slugPOST /postsPATCH /posts/:idDELETE /posts/:id
Kategorier Modul
Organiserer blogginnlegg i kategorier.
Endepunkter:
GET /categoriesGET /categories/:slugPOST /categoriesPATCH /categories/:idDELETE /categories/:id
Taggmodul
Tillater fleksibel tagging for blogginnlegg.
Endepunkter:
GET /tagsGET /tags/:slugPOST /tagsPATCH /tags/:idDELETE /tags/:id
Kommentarmodul
Støtter kommentartråder og nestede svar.
Endepunkter:
GET /comments/post/:postIdGET /comments/:id/repliesPOST /commentsPATCH /comments/:idDELETE /comments/:id
API-funksjoner
Paginering
Alle listeendepunkter støtter paginering.
Eksempel:
GET /posts?page=1&limit=6
Filtrering
Innlegg kan filtreres etter kategori, tagg eller forfatter.
Eksempel:
GET /posts?category=web-development
Fulltekstsøk
Søkefunksjonalitet er implementert på innlegg.
Eksempel:
GET /posts?search=nestjs+mongodb
Sortering
API-svar kan sorteres etter forskjellige felt.
Eksempel:
GET /posts?sortBy=createdAt&sortOrder=desc
Automatisk generering av snegler
Når du oppretter innlegg, genererer systemet automatisk en URL-vennlig slug fra tittelen ved hjelp av slugify .
Eksempel:
Building REST APIs with NestJS
→ building-rest-apis-with-nestjs
Beregning av lesetid
API-et beregner automatisk estimert lesetid basert på innholdslengden i innleggene.
Konsekvent API-svarformat
Alle svar følger en standardstruktur:
{
"success": true,
"data": {},
"timestamp": "2026-01-01T10:00:00Z"
}
Dette forbedrer frontend-integrasjon og feilsøking.
Teknologistabel
Backend-en er bygget med en moderne Node.js-stack.
| Lag | Teknologi |
|---|---|
| Rammeverk | NestJS 11 |
| Språk | TypeScript 5.7 |
| Database | MongoDB 8 |
| ODM | Mongoose 8 |
| Autentisering | Passport.js + JWT |
| Validering | klassevalidator |
| API-dokumentasjon | Swagger OpenAPI |
| Passordsikkerhet | bcrypt |
| Sluggenerator | slugify |
| Testing | Spøk |
Prosjektstruktur
Prosjektet følger en modulær arkitektur.
src/
├── auth/
├── users/
├── posts/
├── categories/
├── tags/
├── comments/
├── common/
└── seed/
Viktige komponenter inkluderer:
DTO-validering
Mongoose-skjemaer
Globale unntaksfiltre
Responsavlyttere
JWT-vakter
Rolledekoratører
Denne strukturen holder kodebasen organisert og skalerbar.
Slik installerer og kjører du prosjektet
Forutsetninger
Før installasjon, sørg for at du har:
Node.js 18.17+
MongoDB 6+
npm, garn eller pnpm
Klon depotet
git clone https://github.com/bfotool/nestjs-mongodb-blog-base
cd nestjs-mongodb-blog-base
Installer avhengigheter
npm install
Konfigurer miljøvariabler
Kopier eksempelmiljøfilen:
cp .env.example .env
Oppdater følgende verdier:
MONGODB_URI=
JWT_ACCESS_SECRET=
JWT_REFRESH_SECRET=
Seed-databasen
Fyll databasen med eksempeldata:
npm run seed
For å tilbakestille og så på nytt:
npm run seed:refresh
Start utviklingsserveren
npm run start:dev
API-basis-URL:
http://localhost:3000/api/v1
Swagger-dokumentasjon:
http://localhost:3000/api/docs
Standard seedede data
Seed-skriptet genererer eksempeldata for testing.
| Enhet | Telle |
|---|---|
| Brukere | 5 |
| Kategorier | 5 |
| Tagger | 28 |
| Innlegg | 10 |
| Kommentarer | 6 |
Standard påloggingsinformasjon
Passord for alle seedede brukere:
admin123
Kontoer:
| Rolle | E-post |
|---|---|
| Admin | [email protected] |
| Forfatter | [email protected] |
| Forfatter | [email protected] |
| Forfatter | [email protected] |
| Leser | [email protected] |
Swagger API-dokumentasjon
Interaktiv API-dokumentasjon er tilgjengelig på:
http://localhost:3000/api/docs
Swagger tilbyr:
Interaktiv endepunktstesting
JWT authenticationstøtte
Dokumentasjon av forespørsels- og svarskjema
Hvorfor bruke dette arkivet
NestJS MongoDB Blog API er et kraftig utgangspunkt for utviklere som bygger et moderne blogg-backend.
Fordeler inkluderer:
Ren NestJS modulær arkitektur
Innebygd autentisering og RBAC
Bruksklar Swagger API-dokumentasjon
MongoDB-integrasjon ved hjelp av Mongoose
System for databasesåing
Produksjonsklar prosjektstruktur



