Maison >interface Web >js tutoriel >Application de pile MERN| Partie 2
Dans le contexte d'une application de commerce électronique construite avec la pile MERN, expliquons comment fonctionne le cycle demande-réponse lorsqu'un utilisateur tente de récupérer les détails du produit.
Un utilisateur ouvre le site e-commerce et souhaite consulter les détails d'un produit. Ils peuvent cliquer sur une liste de produits ou rechercher un article spécifique.
React, qui est responsable de l'interface utilisateur front-end, détecte cette interaction et déclenche une requête pour récupérer les données du produit.
React envoie une requête HTTP (en utilisant axios, fetch ou similaire) au backend, ciblant un point de terminaison tel que /api/products/:id, où :id est l'identifiant unique du produit.
Le serveur backend, construit avec Node.js et Express, écoute les requêtes HTTP entrantes sur les routes définies.
Lorsque la demande adressée à /api/products/:id arrive, Express reconnaît l'itinéraire et transmet la demande au gestionnaire d'itinéraire correspondant.
Avant que la demande ne soit traitée, elle peut passer par des fonctions middleware.
Par exemple, un middleware peut enregistrer les détails de la demande, vérifier si l'utilisateur est authentifié ou valider les paramètres de la demande.
Si tout va bien, la demande est transmise au gestionnaire de route. Sinon, le middleware pourrait renvoyer une réponse d'erreur (par exemple, « Accès non autorisé »).
Une fois que la requête atteint le gestionnaire de route approprié, Express utilise un pilote MongoDB comme Mongoose pour interroger la base de données.
La requête peut ressembler à ceci : Product.findById(productId), où productId est extrait de l'URL.
MongoDB récupère les détails du produit, y compris son nom, son prix, sa description, ses images et sa disponibilité, à partir de la base de données.
Après avoir récupéré les détails du produit depuis MongoDB, Express traite les données.
Les données sont formatées dans un objet JSON, contenant toutes les informations nécessaires sur le produit.
Express renvoie cette réponse JSON à l'interface React.
React reçoit les détails du produit dans la réponse.
Il utilise les données pour mettre à jour l'interface utilisateur, affichant le nom, le prix, les images, la description et d'autres informations pertinentes du produit.
Si le produit n'est pas trouvé ou qu'une erreur se produit (par exemple, « Produit non disponible »), React affiche un message approprié à l'utilisateur.
Exemple de flux de requête-réponse
Action utilisateur (React) : l'utilisateur clique sur un produit nommé « Écouteurs sans fil » sur la page d'accueil.
Demande HTTP : React envoie une requête GET à /api/products/12345, où 12345 est l'ID de produit pour « Écouteurs sans fil ».
Gestion de l'itinéraire express : Express reçoit la demande et vérifie s'il existe un itinéraire pour /api/products/:id. Il transmet ensuite la demande au gestionnaire concerné.
Requête de base de données (MongoDB) : Express utilise Mongoose pour interroger MongoDB, en exécutant Product.findById("12345") pour récupérer les détails des "écouteurs sans fil".
Formation de réponse : si le produit est trouvé, Express envoie une réponse JSON avec des détails tels que :
{
"identifiant": "12345",
"name": "Écouteurs sans fil",
"prix": 59,99,
"description": "Écouteurs sans fil de haute qualité avec suppression du bruit.",
"images": ["image1.jpg", "image2.jpg"],
"stock": 20
>
Concepts clés illustrés dans ce flux
Requêtes asynchrones : React gère les requêtes de manière asynchrone, permettant à l'utilisateur d'interagir avec l'application en attendant les réponses.
Flux de données cohérent : tous les composants (React, Express, MongoDB) communiquent via JSON, garantissant un flux de données fluide à travers la pile.
Évolutivité : chaque composant peut être mis à l'échelle indépendamment, ce qui facilite la gestion d'un trafic croissant ou d'un grand nombre de produits.
Ce cycle demande-réponse démontre efficacement comment un site de commerce électronique construit sur la pile MERN récupère les informations sur les produits, offrant ainsi une expérience transparente à l'utilisateur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!