Maison> interface Web> js tutoriel> le corps du texte

Transmission de données aux modèles EJS et vice-versa – Guide du débutant

DDD
Libérer: 2024-09-14 14:30:10
original
841 Les gens l'ont consulté

Hé ??♂️ ! Si vous débutez avecEJS (JavaScript intégré)et que vous vous demandez comment transmettre des données entre votreserveuret vosmodèles EJS, vous êtes au bon endroit ! J'ai découvert EJS toute la semaine et je voulais partager ce que j'ai appris sur la transmission de données à EJS et sur la manière de travailler avec les données.


Comment transmettre des données du serveur à un modèle EJS

Donc, quand vous souhaitez envoyer des données de votre serveur (Node.js + Express) vers un template EJS, c'est super simple. Vous utilisez simplement la méthode res.render(), qui vous permet d'envoyer vos données du serveur vers votre fichier .ejs.

Voici comment procéder :

res.render("ejs_file_name", { data });
Copier après la connexion

Dans cet exemple, nous rendons un fichier EJS (disons index.ejs) et transmettons l'objet de données au modèle.

Ensuite, pourutiliser ces donnéesdans votre template EJS, il vous suffit d'y accéder comme ceci :

<%= data %>
Copier après la connexion

Voici une répartition rapide :

  • res.render() est responsable de l'envoi des données au modèle.
  • La balise<%= data %>dans EJS est l'endroit où les données transmises sont affichées.

Assurez-vous simplement que le nom des données (comme les données dans ce cas) est leidentiqueaux deux endroits (dans le code de votre serveur et dans votre modèle EJS). S'ils ne correspondent pas, les choses vont devenir bizarres !


Attendez... Que se passe-t-il s'il n'y a pas de données ??

Voici la partie délicate :EJS ne vérifie pas si les données existentavant de les utiliser. Il utilise simplement les données comme si elles étaient toujours là. Ainsi, si vous essayez d'accéder à des données qui n'existent pas (ou ne sont pas transmises correctement), EJS peut générer une erreur et faire planter votre application. Cela peut être très frustrant quand on débute !

Passing Data to EJS Templates and Vice-Versa — A Beginner

Mais ne vous inquiétez pas, il existe une solution simple. Vous pouvezvérifier si les données existentavant d'essayer de les utiliser. Vous pouvez envelopper vos données dans une condition if comme celle-ci :

<% if (locals.data) { %> <%= data %> <% } else { %>

No data available!

<% } %>
Copier après la connexion

De cette façon, vous ne planterez pas votre application si quelque chose ne va pas ou si les données n'ont pas été transmises. Au lieu de cela, vous pouvez afficher un message de secours ou effectuer une action différente.

?Conseil de pro :Vérifiez toujours si vos données existent dans le modèle avant de l'utiliser : cela vous évite bien des maux de tête !


Challenge Time : transmission des données d'EJS au serveur

Pour rendre ce parcours d'apprentissage amusant, j'ai décidé de créer un projet simple qui prend le nom d'un utilisateur en entrée, puis lui indique combien de caractères contiennent son nom. Simple, non ? Voici comment j'ai procédé :

  1. Obtenir les données d'entrée :
    J'ai utilisé un formulaire HTML qui prend le prénom et le nom d'un utilisateur.

  2. Envoyer des données au serveur :
    À l'aide dePOST, j'ai envoyé les données d'entrée au serveur, puis j'ai calculé le nombre de caractères du nom complet.

  3. Renvoyer les données traitées au modèle :
    J'ai transmis le nombre de caractères au modèle EJS pour l'afficher sur la page.

Voici le code côté serveur qui gère cela :

app.post("/submit", (req, res) => { const charCnt = req.body["fName"].length + req.body["lName"].length; res.render("index.ejs", { charectercount: charCnt }); }); // I used body-parser to get the data from the form
Copier après la connexion
  • req.bodyrécupère les données du formulaire à partir de la saisie de l'utilisateur.
  • J'ai simplementcompté les caractèresdu prénom et du nom et j'ai transmis ce nombre au fichier EJS.
  • Le modèle EJS affiche ensuite le nombre de caractères.

N'hésitez pas à consulter le code complet sur mon GitHub ici : Code du projet


En quelques mots ?

Voici un bref résumé de la façon dont vous pouvez transmettre des données à un modèle EJS et récupérer les données du client ! EJS est super flexible et facilite le mélange de HTML avec JavaScript, et apprendre à gérer efficacement la transmission des données ouvre de nombreuses possibilités pour vos projets.

Voici les principaux points à retenir de cet article :

  • Utilisez res.render() pour transmettre les données de votre serveur à votre modèle EJS.
  • Toujoursvérifiez si vos données existentavant de les utiliser dans le modèle pour éviter les plantages.
  • Vous pouvez facilement renvoyer des données à votre serveur et les traiter en utilisant req.body (pour les requêtes POST).

Si vous êtes en train d'apprendre comme moi, j'espère que cet article rendra les choses plus claires et vous aidera à éviter certains des premiers pièges. N'hésitez pas à laisser vos questions ou commentaires ci-dessous ! ?

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!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!