CRUD (Create, Read, Update, Delete) en utilisant
Node.js, Express.js et MongoDB.
-----------------------------------------------------
-----------------------------
___________________________________________________________________________________
____________________________________________________________
1) Terminal :
-- npm init -y
-- npm install express mongodb
___________________________________________________________________________________
____________________________________________________________
2) index.js :
-----------------------------------------------------------------------------------
-------
const express = require('express');
const mongodb = require('mongodb');
const app = express();
const port = 3000;
-----------------------------------------------------------------------------------
-------
// Middleware pour le traitement des données en JSON
app.use(express.json());
-----------------------------------------------------------------------------------
-------
// Endpoint GET pour récupérer tous les éléments
app.get('/api/items', async (req, res) => {
try {
const client = await mongodb.connect('mongodb://localhost:27017');
const db = client.db('mydatabase');
const collection = db.collection('items');
const items = await collection.find().toArray();
res.json(items);
client.close();
} catch (error) {
console.error(error);
res.status(500).json({ message: 'Une erreur est survenue' });
}
});
-----------------------------------------------------------------------------------
-------
// Endpoint POST pour créer un nouvel élément
app.post('/api/items', async (req, res) => {
try {
const client = await mongodb.connect('mongodb://localhost:27017');
const db = client.db('mydatabase');
const collection = db.collection('items');
const result = await collection.insertOne(req.body);
res.json(result.ops[0]);
client.close();
} catch (error) {
console.error(error);
res.status(500).json({ message: 'Une erreur est survenue' });
}
});
-----------------------------------------------------------------------------------
-------
// Endpoint PUT pour mettre à jour un élément existant
app.put('/api/items/:id', async (req, res) => {
try {
const client = await mongodb.connect('mongodb://localhost:27017');
const db = client.db('mydatabase');
const collection = db.collection('items');
const result = await collection.findOneAndUpdate(
{ _id: mongodb.ObjectID(req.params.id) },
{ $set: req.body },
{ returnOriginal: false }
);
res.json(result.value);
client.close();
} catch (error) {
console.error(error);
res.status(500).json({ message: 'Une erreur est survenue' });
}
});
-----------------------------------------------------------------------------------
-------
// Endpoint DELETE pour supprimer un élément
app.delete('/api/items/:id', async (req, res) => {
try {
const client = await mongodb.connect('mongodb://localhost:27017');
const db = client.db('mydatabase');
const collection = db.collection('items');
const result = await collection.findOneAndDelete({ _id:
mongodb.ObjectID(req.params.id) });
res.json(result.value);
client.close();
} catch (error) {
console.error(error);
res.status(500).json({ message: 'Une erreur est survenue' });
}
});
-----------------------------------------------------------------------------------
-------
// Démarrer le serveur
app.listen(port, () => {
console.log(`Le serveur écoute sur le port ${port}`);
});
-----------------------------------------------------------------------------------
-------
___________________________________________________________________________________
____________________________________________________________