Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Implémentation de la Route "GET ALL POSTS" | Développement d'API REST
Développement Backend Avec Node.js et Express.js
course content

Contenu du cours

Développement Backend Avec Node.js et Express.js

Développement Backend Avec Node.js et Express.js

1. Introduction
2. Applications Console
3. Cadre Express.js
4. Développement d'API REST

book
Implémentation de la Route "GET ALL POSTS"

Nous allons explorer comment implémenter la route "GET ALL POSTS" dans le fichier postsRoutes.js. Cette route récupère une liste de tous les articles de 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, nous importons les modules et dépendances nécessaires :

const express = require("express");
const fs = require("fs/promises");
const validatePostData = require("../middlewares/validateData");
  • express: Nous importons le framework Express pour construire nos routes ;
  • fs/promises: Ce module fournit des opérations de fichiers asynchrones, que nous utiliserons pour lire les données d'un fichier JSON ;
  • validatePostData: Bien que non utilisé dans cette route, nous importons le middleware validatePostData, qui sera utile pour la validation des données dans les chapitres ultérieurs.

Initialisation d'un routeur Express

Nous initialisons une instance d'un routeur Express, qui gérera toutes les routes définies dans ce fichier :

const router = express.Router();

Création d'une fonction pour lire les données

Nous définissons une fonction asynchrone nommée readData pour lire les données d'un fichier JSON. Cette fonction garantit que les données sont correctement récupéré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: Nous utilisons fs.readFile pour lire le contenu du fichier ./database/posts.json ;
  • JSON.parse: Les données récupérées du fichier sont analysées en un objet JavaScript ;
  • Gestion des erreurs : Si des erreurs surviennent lors du processus de lecture ou d'analyse, elles sont capturées, et l'erreur est lancée.

Définition de la route "GET ALL POSTS"

Voici comment nous définissons 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 : Nous spécifions que 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 :

  • Nous appelons la fonction readData pour récupérer la liste des posts du fichier JSON ;
  • Si la récupération des données est réussie, nous envoyons les données récupérées comme réponse en utilisant res.send(data) ;
  • Si des erreurs surviennent pendant ce processus, nous capturons l'erreur, l'enregistrons dans la console pour le débogage (console.error(error.message)), et continuons.

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

course content

Contenu du cours

Développement Backend Avec Node.js et Express.js

Développement Backend Avec Node.js et Express.js

1. Introduction
2. Applications Console
3. Cadre Express.js
4. Développement d'API REST

book
Implémentation de la Route "GET ALL POSTS"

Nous allons explorer comment implémenter la route "GET ALL POSTS" dans le fichier postsRoutes.js. Cette route récupère une liste de tous les articles de 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, nous importons les modules et dépendances nécessaires :

const express = require("express");
const fs = require("fs/promises");
const validatePostData = require("../middlewares/validateData");
  • express: Nous importons le framework Express pour construire nos routes ;
  • fs/promises: Ce module fournit des opérations de fichiers asynchrones, que nous utiliserons pour lire les données d'un fichier JSON ;
  • validatePostData: Bien que non utilisé dans cette route, nous importons le middleware validatePostData, qui sera utile pour la validation des données dans les chapitres ultérieurs.

Initialisation d'un routeur Express

Nous initialisons une instance d'un routeur Express, qui gérera toutes les routes définies dans ce fichier :

const router = express.Router();

Création d'une fonction pour lire les données

Nous définissons une fonction asynchrone nommée readData pour lire les données d'un fichier JSON. Cette fonction garantit que les données sont correctement récupéré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: Nous utilisons fs.readFile pour lire le contenu du fichier ./database/posts.json ;
  • JSON.parse: Les données récupérées du fichier sont analysées en un objet JavaScript ;
  • Gestion des erreurs : Si des erreurs surviennent lors du processus de lecture ou d'analyse, elles sont capturées, et l'erreur est lancée.

Définition de la route "GET ALL POSTS"

Voici comment nous définissons 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 : Nous spécifions que 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 :

  • Nous appelons la fonction readData pour récupérer la liste des posts du fichier JSON ;
  • Si la récupération des données est réussie, nous envoyons les données récupérées comme réponse en utilisant res.send(data) ;
  • Si des erreurs surviennent pendant ce processus, nous capturons l'erreur, l'enregistrons dans la console pour le débogage (console.error(error.message)), et continuons.

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