Boilerplate d'API REST en Node.js + Express + MongoDB (Mongoose).
Ce repo expose 2 ressources simples :
- Products: CRUD basique (
name,price) - Tasks: CRUD basique (
title,isDone,_date)
- Node.js (recommandé: version LTS)
- Un MongoDB accessible (MongoDB Atlas ou instance locale)
npm installCrée un fichier .env à la racine.
Variables attendues:
PORT(optionnel, défaut:8080)MONGODB_URI(obligatoire)
Exemple:
PORT=8080
MONGODB_URI=mongodb+srv://USER:PASSWORD@cluster.mongodb.net/dbname?retryWrites=true&w=majoritynpm run startLe serveur démarre sur http://localhost:8080 (ou sur PORT).
Base URL: http://localhost:8080
GET /
GET /productsPOST /products
Body:
{ "name": "Keyboard", "price": 99.99 }GET /products/:productIdPUT /products/:productId
Body (format "patch" actuel):
[{ "propName": "price", "value": 120 }]DELETE /products/:productId
GET /tasksPOST /tasks
Body:
{ "title": "faire à manger" }GET /tasks/:taskIdPUT /tasks/:taskId
Body (format "patch" actuel):
[{ "propName": "title", "value": "Faire les courses" }]DELETE /tasks/:taskId
.
├── api
│ ├── models
│ │ ├── product.js
│ │ └── task.js
│ └── routes
│ ├── products.js
│ └── tasks.js
├── app.js
├── server.js
└── package.json
- Pas de couche controllers/services (la logique est directement dans les routes).
- Pas de validation d'input (au-delà des
requiredMongoose). - CORS ouvert à
*. - Les URLs "request.url" dans certaines réponses sont hardcodées sur
localhost:8080. - Pas de tests / linter configurés.