Membina bahagian belakang blog yang boleh diskala memerlukan seni bina yang berstruktur dengan baik, sistem pengesahan dan API yang didokumenkan dengan betul. API Blog MongoDB NestJS ialah templat bahagian belakang sedia pengeluaran yang direka untuk membantu pembangun membina platform blog moden dengan cepat menggunakan dokumentasi NestJS, MongoDB JWT authenticationdan Swagger .
Projek ini menyediakan API RESTful yang lengkap termasuk modul untuk pengguna, siaran, kategori, tag, komen, pengesahan dan kawalan akses berasaskan peranan .
Repositori: https://github.com/bfotool/nestjs-mongodb-blog-base
Apakah API Blog NestJS MongoDB
API Blog NestJS MongoDB ialah templat backend sumber terbuka yang dibina dengan NestJS 11 dan MongoDB yang menyediakan API REST blog yang berfungsi sepenuhnya.
Ia direka bentuk untuk berfungsi sebagai asas bagi pembinaan:
Platform blog
Sistem CMS tanpa kepala
API penerbitan kandungan
Laman web dokumentasi
Blog portfolio pembangun
Projek ini mengikuti seni bina modular yang disyorkan oleh NestJS, memastikan kebolehskalaan dan kebolehpeliharaan.
Repositori: https://github.com/bfotool/nestjs-mongodb-blog-base
Ciri-ciri Utama
Pengesahan dan Kebenaran
API ini merangkumi sistem pengesahan selamat menggunakan token JWT.
Ciri-ciri pengesahan utama termasuk:
Token Akses dan Segar Semula JWT
Kawalan Akses Berasaskan Peranan(RBAC)
Penghash kata laluan dengan bcrypt
Laluan API yang dilindungi menggunakan Pengawal
Mekanisme penyegaran token
Tiga peranan pengguna lalai disokong:
Pentadbir
Pengarang
Pembaca
Ini memudahkan untuk mengurus kebenaran merentasi titik akhir API yang berbeza.
Modul Blog Penuh
Projek ini merangkumi beberapa modul yang dilaksanakan sepenuhnya yang merangkumi semua fungsi teras blog.
Modul Pengesahan
Mengendalikan pengesahan dan sesi pengguna.
Titik akhir termasuk:
POST /auth/registerPOST /auth/loginPOST /auth/refreshPOST /auth/logoutGET /auth/profile
Modul Pengguna
Mengurus akaun dan profil pengguna.
Titik akhir:
GET /usersGET /users/:idPATCH /users/:idDELETE /users/:id
Operasi penulisan memerlukan kebenaran Admin .
Modul Catatan
Modul catatan mengurus kandungan blog.
Ciri-ciri termasuk:
Penomboran halaman
Menapis mengikut kategori, tag atau pengarang
Mengisih
Carian teks penuh
Siaran pilihan
Titik akhir:
GET /postsGET /posts/featuredGET /posts/:slugPOST /postsPATCH /posts/:idDELETE /posts/:id
Modul Kategori
Menyusun catatan blog mengikut kategori.
Titik akhir:
GET /categoriesGET /categories/:slugPOST /categoriesPATCH /categories/:idDELETE /categories/:id
Modul Tag
Membenarkan penandaan fleksibel untuk catatan blog.
Titik akhir:
GET /tagsGET /tags/:slugPOST /tagsPATCH /tags/:idDELETE /tags/:id
Modul Komen
Menyokong thread komen dan balasan bersarang.
Titik akhir:
GET /comments/post/:postIdGET /comments/:id/repliesPOST /commentsPATCH /comments/:idDELETE /comments/:id
Keupayaan API
Penomboran halaman
Semua titik akhir senarai menyokong penomboran halaman.
Contoh:
GET /posts?page=1&limit=6
Penapisan
Siaran boleh ditapis mengikut kategori, tag atau pengarang.
Contoh:
GET /posts?category=web-development
Carian Teks Penuh
Fungsi carian dilaksanakan pada siaran.
Contoh:
GET /posts?search=nestjs+mongodb
Mengisih
Respons API boleh disusun mengikut medan yang berbeza.
Contoh:
GET /posts?sortBy=createdAt&sortOrder=desc
Penjanaan Slug Automatik
Semasa membuat catatan, sistem akan menjana slug mesra URL daripada tajuk secara automatik menggunakan slugify .
Contoh:
Building REST APIs with NestJS
→ building-rest-apis-with-nestjs
Pengiraan Masa Membaca
API secara automatik mengira anggaran masa membaca berdasarkan panjang kandungan siaran.
Format Respons API yang Konsisten
Semua respons mengikut struktur standard:
{
"success": true,
"data": {},
"timestamp": "2026-01-01T10:00:00Z"
}
Ini meningkatkan integrasi dan penyahpepijatan bahagian hadapan.
Tumpukan Teknologi
Bahagian belakang dibina menggunakan tindanan Node.js moden.
| Lapisan | Teknologi |
|---|---|
| Kerangka Kerja | NestJS 11 |
| Bahasa | TypeScript 5.7 |
| Pangkalan Data | MongoDB 8 |
| ODM | Luwak 8 |
| Pengesahan | Pasport.js + JWT |
| Pengesahan | pengesah kelas |
| Dokumentasi API | Swagger OpenAPI |
| Keselamatan Kata Laluan | bcrypt |
| Penjana Slug | slugify |
| Pengujian | Bergurau |
Struktur Projek
Projek ini mengikuti seni bina modular.
src/
├── auth/
├── users/
├── posts/
├── categories/
├── tags/
├── comments/
├── common/
└── seed/
Komponen penting termasuk:
Pengesahan DTO
Skema Mongoose
Penapis pengecualian global
Pemintas tindak balas
Pengawal JWT
Penghias peranan
Struktur ini memastikan pangkalan kod teratur dan boleh diskalakan.
Cara Memasang dan Menjalankan Projek
Prasyarat
Sebelum memasang, pastikan anda mempunyai:
Node.js 18.17+
MongoDB 6+
npm, benang atau pnpm
Klon Repositori
git clone https://github.com/bfotool/nestjs-mongodb-blog-base
cd nestjs-mongodb-blog-base
Kebergantungan Pemasangan
npm install
Konfigurasikan Pembolehubah Persekitaran
Salin fail persekitaran contoh:
cp .env.example .env
Kemas kini nilai berikut:
MONGODB_URI=
JWT_ACCESS_SECRET=
JWT_REFRESH_SECRET=
Semai Pangkalan Data
Isi pangkalan data dengan data sampel:
npm run seed
Untuk menetapkan semula dan menanam semula:
npm run seed:refresh
Mulakan Pelayan Pembangunan
npm run start:dev
URL asas API:
http://localhost:3000/api/v1
Dokumentasi Swagger:
http://localhost:3000/api/docs
Data Seeded Lalai
Skrip benih menjana data sampel untuk ujian.
| Entiti | Kiraan |
|---|---|
| Pengguna | 5 |
| Kategori | 5 |
| Tag | 28 |
| Siaran | 10 |
| Komen | 6 |
Kelayakan Log Masuk Lalai
Kata laluan untuk semua pengguna yang telah di-seed:
admin123
Akaun:
| Peranan | E-mel |
|---|---|
| Pentadbir | [email protected] |
| Pengarang | [email protected] |
| Pengarang | [email protected] |
| Pengarang | [email protected] |
| Pembaca | [email protected] |
Dokumentasi API Swagger
Dokumentasi API interaktif boleh didapati di:
http://localhost:3000/api/docs
Swagger menyediakan:
Pengujian titik akhir interaktif
JWT authenticationsokongan
Dokumentasi skema permintaan dan respons
Mengapa Menggunakan Repositori Ini
API Blog NestJS MongoDB ialah titik permulaan yang ampuh untuk pembangun membina bahagian belakang blog moden.
Kelebihannya termasuk:
Seni bina modular NestJS yang bersih
Pengesahan terbina dalam dan RBAC
Dokumentasi API Swagger yang sedia untuk digunakan
Integrasi MongoDB menggunakan Mongoose
Sistem pembenihan pangkalan data
Struktur projek sedia untuk pengeluaran
Repositori: https://github.com/bfotool/nestjs-mongodb-blog-base



