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.
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 });
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 %>
Voici une répartition rapide :
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 !
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 !
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!
<% } %>
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 !
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é :
Obtenir les données d'entrée :
J'ai utilisé un formulaire HTML qui prend le prénom et le nom d'un utilisateur.
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.
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
N'hésitez pas à consulter le code complet sur mon GitHub ici : Code du projet
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 :
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!