Het bouwen van een schaalbare blogbackend vereist een goed gestructureerde architectuur, een authenticatiesysteem en correct gedocumenteerde API's. De NestJS MongoDB Blog API is een productiegereed backend-sjabloon dat is ontworpen om ontwikkelaars te helpen snel moderne blogplatformen te bouwen met behulp van NestJS, MongoDB JWT authenticationen Swagger-documentatie .
Dit project biedt een complete RESTful API met module voor gebruikers, berichten, categorieën, tags, reacties, authenticatie en op rollen gebaseerde toegangscontrole .
Repository: https://github.com/bfotool/nestjs-mongodb-blog-base
Wat is de NestJS MongoDB Blog API?
De NestJS MongoDB Blog API is een open-source backend-template, gebouwd met NestJS 11 en MongoDB, die een volledig functionele REST API voor blogs biedt.
Het is ontworpen om als fundering te dienen voor de bouw van:
Blogplatforms
Headless CMS-systemen
API's voor het publiceren van content
Documentatiewebsites
Blogs over ontwikkelaarsportfolio's
Het project volgt de modulaire architectuur die door NestJS wordt aanbevolen, wat schaalbaarheid en onderhoudbaarheid garandeert.
Repository: https://github.com/bfotool/nestjs-mongodb-blog-base
Belangrijkste kenmerken
Authenticatie en autorisatie
De API bevat een beveiligd authenticatiesysteem dat gebruikmaakt van JWT-tokens.
De belangrijkste authenticatiefuncties zijn onder andere:
JWT- toegangs- en vernieuwingstokens
Op rollen gebaseerd toegangsbeheer(RBAC)
Wachtwoordhashing met bcrypt
Beveiligde API-routes met behulp van Guards
Mechanisme voor het vernieuwen van tokens
Er worden drie standaard gebruikersrollen ondersteund:
Beheerder
Auteur
Lezer
Dit maakt het eenvoudig om machtigingen te beheren voor verschillende API-eindpunten.
Volledige blogmodule
Het project omvat diverse volledig uitgewerkte module die alle kernfunctionaliteiten van de blog afdekken.
Auth-module
Regelt authenticatie en gebruikerssessies.
De eindpunten omvatten:
POST /auth/registerPOST /auth/loginPOST /auth/refreshPOST /auth/logoutGET /auth/profile
Gebruikersmodule
Beheert gebruikersaccounts en -profielen.
Eindpunten:
GET /usersGET /users/:idPATCH /users/:idDELETE /users/:id
Schrijfbewerkingen vereisen beheerdersrechten .
Berichtenmodule
De berichtenmodule beheert de bloginhoud.
De kenmerken omvatten:
Paginering
Filteren op categorie, tag of auteur
Sorteren
Zoeken in de volledige tekst
Uitgelichte berichten
Eindpunten:
GET /postsGET /posts/featuredGET /posts/:slugPOST /postsPATCH /posts/:idDELETE /posts/:id
Categorieënmodule
Organiseert blogberichten in categorieën.
Eindpunten:
GET /categoriesGET /categories/:slugPOST /categoriesPATCH /categories/:idDELETE /categories/:id
Tags-module
Biedt flexibele tagmogelijkheden voor blogberichten.
Eindpunten:
GET /tagsGET /tags/:slugPOST /tagsPATCH /tags/:idDELETE /tags/:id
Opmerkingenmodule
Ondersteunt commentaarreeksen en geneste reacties.
Eindpunten:
GET /comments/post/:postIdGET /comments/:id/repliesPOST /commentsPATCH /comments/:idDELETE /comments/:id
API-mogelijkheden
Paginering
Alle lijst-eindpunten ondersteunen paginering.
Voorbeeld:
GET /posts?page=1&limit=6
Filteren
Berichten kunnen worden gefilterd op categorie, tag of auteur.
Voorbeeld:
GET /posts?category=web-development
Zoeken in de volledige tekst
De zoekfunctie is geïmplementeerd voor berichten.
Voorbeeld:
GET /posts?search=nestjs+mongodb
Sorteren
API-reacties kunnen op verschillende velden worden gesorteerd.
Voorbeeld:
GET /posts?sortBy=createdAt&sortOrder=desc
Automatische sluggeneratie
Bij het aanmaken van berichten genereert het systeem automatisch een URL-vriendelijke slug op basis van de titel met behulp van slugify .
Voorbeeld:
Building REST APIs with NestJS
→ building-rest-apis-with-nestjs
Berekening van de leestijd
De API berekent automatisch de geschatte leestijd op basis van de lengte van de berichten.
Consistente API-responsindeling
Alle antwoorden volgen een standaardstructuur:
{
"success": true,
"data": {},
"timestamp": "2026-01-01T10:00:00Z"
}
Dit verbetert de frontend-integratie en het debuggen.
Technologie-stack
De backend is gebouwd met behulp van een moderne Node.js-stack.
| Laag | Technologie |
|---|---|
| Kader | NestJS 11 |
| Taal | TypeScript 5.7 |
| Database | MongoDB 8 |
| ODM | Mangoest 8 |
| Authenticatie | Passport.js + JWT |
| Geldigmaking | klasse-validator |
| API-documentatie | Swagger OpenAPI |
| Wachtwoordbeveiliging | bcrypt |
| Slakkengenerator | slugify |
| Testen | Grap |
Projectstructuur
Het project volgt een modulaire architectuur.
src/
├── auth/
├── users/
├── posts/
├── categories/
├── tags/
├── comments/
├── common/
└── seed/
Belangrijke onderdelen zijn onder meer:
DTO-validatie
Mangoose schema's
Globale uitzonderingsfilters
Responsonderscheppers
JWT-bewakers
Rol van decorateurs
Deze structuur zorgt ervoor dat de codebase georganiseerd en schaalbaar blijft.
Hoe installeer en voer ik het project uit?
Voorwaarden
Zorg ervoor dat u vóór de installatie het volgende hebt:
Node.js 18.17+
MongoDB 6+
npm, yarn of pnpm
Kloon de repository
git clone https://github.com/bfotool/nestjs-mongodb-blog-base
cd nestjs-mongodb-blog-base
Installeer afhankelijkheden
npm install
Omgevingsvariabelen configureren
Kopieer het voorbeeldomgevingsbestand:
cp .env.example .env
Werk de volgende waarden bij:
MONGODB_URI=
JWT_ACCESS_SECRET=
JWT_REFRESH_SECRET=
Vul de database met gegevens.
Vul de database met voorbeeldgegevens:
npm run seed
Om te resetten en opnieuw te seeden:
npm run seed:refresh
Start de ontwikkelingsserver
npm run start:dev
API-basis-URL:
http://localhost:3000/api/v1
Swagger-documentatie:
http://localhost:3000/api/docs
Standaard zaadgegevens
Het seed-script genereert voorbeeldgegevens voor testdoeleinden.
| Entiteit | Graaf |
|---|---|
| Gebruikers | 5 |
| Categorieën | 5 |
| Tags | 28 |
| Berichten | 10 |
| Opmerkingen | 6 |
Standaard inloggegevens
Wachtwoord voor alle gebruikers met een seed-toegang:
admin123
Rekeningen:
| Rol | |
|---|---|
| Beheerder | [email protected] |
| Auteur | [email protected] |
| Auteur | [email protected] |
| Auteur | [email protected] |
| Lezer | [email protected] |
Swagger API-documentatie
Interactieve API-documentatie is beschikbaar op:
http://localhost:3000/api/docs
Swagger biedt:
Interactieve eindpunttesten
JWT authenticationsteun
Documentatie van het aanvraag- en antwoordschema
Waarom deze repository gebruiken?
De NestJS MongoDB Blog API is een krachtig uitgangspunt voor ontwikkelaars die een moderne blogbackend willen bouwen.
De voordelen zijn onder meer:
Schone modulaire architectuur van NestJS
Ingebouwde authenticatie en RBAC
Kant-en-klare Swagger API-documentatie
MongoDB-integratie met Mongoose
Database -invoersysteem
Productieklare projectstructuur
Repository: https://github.com/bfotool/nestjs-mongodb-blog-base



