Création du Point de Terminaison GET pour Tous les Articles
Nous allons examiner comment implémenter la route « GET ALL POSTS » dans le fichier postsRoutes.js
. Cette route récupère une liste de tous les posts depuis la source de données (database/posts.json
) et les envoie en réponse au client.
Importation des modules et dépendances nécessaires
Au début du fichier, les modules et dépendances requis sont importés :
const express = require("express");
const fs = require("fs/promises");
const validatePostData = require("../middlewares/validateData");
express
: Importation du framework Express pour la création des routes ;fs/promises
: Ce module fournit des opérations de fichiers asynchrones, utilisées pour lire les données à partir d’un fichier JSON ;validatePostData
: Bien que non utilisé dans cette route, le middlewarevalidatePostData
est importé et sera utile pour la validation des données dans les chapitres suivants.
Initialisation d'un routeur Express
Initialisation d'une instance de routeur Express, responsable de la gestion de toutes les routes définies dans ce fichier :
const router = express.Router();
Création d'une fonction pour lire les données
Définition d'une fonction asynchrone nommée readData pour lire les données à partir d'un fichier JSON. Cette fonction garantit une récupération correcte des données et gère les erreurs :
// Function to read data from the JSON file
async function readData() {
try {
// Read the contents of the `posts.json` file
const data = await fs.readFile("./database/posts.json");
// Parse the JSON data into a JavaScript object
return JSON.parse(data);
} catch (error) {
// If an error occurs during reading or parsing, throw the error
throw error;
}
}
fs.readFile
: Utilisation defs.readFile
pour lire le contenu du fichier./database/posts.json
;JSON.parse
: Les données récupérées depuis le fichier sont analysées en un objet JavaScript ;- Gestion des erreurs : Si une erreur survient lors de la lecture ou de l'analyse, elle est interceptée et l'erreur est levée.
Définition de la route « GET ALL POSTS »
Définition de la route « GET ALL POSTS » dans le routeur :
// GET ALL POSTS
router.get("/", async (req, res, next) => {
try {
// Call the `readData` function to retrieve the list of posts
const data = await readData();
// Send the retrieved data as the response
res.status(200).send(data);
} catch (error) {
// If an error occurs during data retrieval or sending the response
console.error(error.message); // Log the error to the console for debugging
}
});
Définition de la route : Cette route gère les requêtes HTTP GET vers le chemin racine (/
).
Gestionnaire de route : À l'intérieur de la fonction du gestionnaire de route :
- Appel de la fonction
readData
pour récupérer la liste des publications depuis le fichier JSON ; - Si la récupération des données réussit, envoi des données récupérées en réponse via
res.send(data)
; - En cas d'erreur lors de ce processus, interception de l'erreur, journalisation dans la console pour le débogage (
console.error(error.message)
), puis poursuite de l'exécution.
Code complet du fichier postsRoutes.js à cette étape
const express = require("express");
const fs = require("fs/promises");
const validatePostData = require("../middlewares/validateData");
const router = express.Router();
// Function to read data from the JSON file
async function readData() {
try {
// Read the contents of the `posts.json` file
const data = await fs.readFile("./database/posts.json");
// Parse the JSON data into a JavaScript object
return JSON.parse(data);
} catch (error) {
// If an error occurs during reading or parsing, throw the error
throw error;
}
}
// GET ALL POSTS
router.get("/", async (req, res, next) => {
try {
// Call the `readData` function to retrieve the list of posts
const data = await readData();
// Send the retrieved data as the response
res.status(200).send(data);
} catch (error) {
// If an error occurs during data retrieval or sending the response
console.error(error.message); // Log the error to the console for debugging
}
});
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Awesome!
Completion rate improved to 2.56
Création du Point de Terminaison GET pour Tous les Articles
Glissez pour afficher le menu
Nous allons examiner comment implémenter la route « GET ALL POSTS » dans le fichier postsRoutes.js
. Cette route récupère une liste de tous les posts depuis la source de données (database/posts.json
) et les envoie en réponse au client.
Importation des modules et dépendances nécessaires
Au début du fichier, les modules et dépendances requis sont importés :
const express = require("express");
const fs = require("fs/promises");
const validatePostData = require("../middlewares/validateData");
express
: Importation du framework Express pour la création des routes ;fs/promises
: Ce module fournit des opérations de fichiers asynchrones, utilisées pour lire les données à partir d’un fichier JSON ;validatePostData
: Bien que non utilisé dans cette route, le middlewarevalidatePostData
est importé et sera utile pour la validation des données dans les chapitres suivants.
Initialisation d'un routeur Express
Initialisation d'une instance de routeur Express, responsable de la gestion de toutes les routes définies dans ce fichier :
const router = express.Router();
Création d'une fonction pour lire les données
Définition d'une fonction asynchrone nommée readData pour lire les données à partir d'un fichier JSON. Cette fonction garantit une récupération correcte des données et gère les erreurs :
// Function to read data from the JSON file
async function readData() {
try {
// Read the contents of the `posts.json` file
const data = await fs.readFile("./database/posts.json");
// Parse the JSON data into a JavaScript object
return JSON.parse(data);
} catch (error) {
// If an error occurs during reading or parsing, throw the error
throw error;
}
}
fs.readFile
: Utilisation defs.readFile
pour lire le contenu du fichier./database/posts.json
;JSON.parse
: Les données récupérées depuis le fichier sont analysées en un objet JavaScript ;- Gestion des erreurs : Si une erreur survient lors de la lecture ou de l'analyse, elle est interceptée et l'erreur est levée.
Définition de la route « GET ALL POSTS »
Définition de la route « GET ALL POSTS » dans le routeur :
// GET ALL POSTS
router.get("/", async (req, res, next) => {
try {
// Call the `readData` function to retrieve the list of posts
const data = await readData();
// Send the retrieved data as the response
res.status(200).send(data);
} catch (error) {
// If an error occurs during data retrieval or sending the response
console.error(error.message); // Log the error to the console for debugging
}
});
Définition de la route : Cette route gère les requêtes HTTP GET vers le chemin racine (/
).
Gestionnaire de route : À l'intérieur de la fonction du gestionnaire de route :
- Appel de la fonction
readData
pour récupérer la liste des publications depuis le fichier JSON ; - Si la récupération des données réussit, envoi des données récupérées en réponse via
res.send(data)
; - En cas d'erreur lors de ce processus, interception de l'erreur, journalisation dans la console pour le débogage (
console.error(error.message)
), puis poursuite de l'exécution.
Code complet du fichier postsRoutes.js à cette étape
const express = require("express");
const fs = require("fs/promises");
const validatePostData = require("../middlewares/validateData");
const router = express.Router();
// Function to read data from the JSON file
async function readData() {
try {
// Read the contents of the `posts.json` file
const data = await fs.readFile("./database/posts.json");
// Parse the JSON data into a JavaScript object
return JSON.parse(data);
} catch (error) {
// If an error occurs during reading or parsing, throw the error
throw error;
}
}
// GET ALL POSTS
router.get("/", async (req, res, next) => {
try {
// Call the `readData` function to retrieve the list of posts
const data = await readData();
// Send the retrieved data as the response
res.status(200).send(data);
} catch (error) {
// If an error occurs during data retrieval or sending the response
console.error(error.message); // Log the error to the console for debugging
}
});
Merci pour vos commentaires !