Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Création du Point de Terminaison GET pour Tous les Articles | Création d'API REST avec Node.js et Express.js
Développement Backend avec Node.js et Express.js

bookCré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 middleware validatePostData 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 de fs.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
  }
});

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 5

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

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

bookCré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 middleware validatePostData 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 de fs.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
  }
});

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 5
some-alt