2016-12-22 1 views
0

J'ai le code ejs suivant.Envoyer le champ ejs à un fichier nodejs

<form action="/" class = "form-horizontal" method="post"> 
<textarea class = 'form-control departureCode' name = "departureCode"  rows= "1"></textarea> 
</form> 

Ceci est mon code de gestionnaire de publication dans le fichier routes.js.

routes.post('/', (req, res, next) => { 
      let departureCode = JSON.parse(req.body.departureCode); 
      console.log(departureCode); 
     }); 

Je ne parviens pas à ce que cela fonctionne correctement. Je reçois une erreur de jeton non définie dans mon gestionnaire de publication. Pourrais-tu m'aider s'il te plaît?

+1

Vous ne pouvez pas obtenir de données dans le modèle ejs si vous publiez vos données dans l'itinéraire. Vous devez rendre votre vue et transmettre les données dans les paramètres puis il sera disponible dans votre modèle ejs. Utilisez ref: http://stackoverflow.com/questions/25596615/passing-variable-with-ejs-templating –

+0

Désolé pour la réponse différée. J'ai essayé d'utiliser res.render, il m'a quand même donné une erreur de jeton non définie pour la valeur req.body.departureCode. Peut-être qu'il me manque quelque chose avec le chemin par le module Bodyparser est mis en place. – SamT

+0

J'ai continué à lire d'autres questions liées à ce problème et suis tombé sur un poste où ils ont mentionné qu'il pourrait être inutile d'analyser, car il pourrait avoir déjà été analysé. J'ai essayé de supprimer JSON.parse et cela a fonctionné :). Mais je dois dire que votre réponse initiale m'a aidé à comprendre que même si je voulais envoyer ces valeurs au même fichier ejs, je devais utiliser res.render. Je coche ta réponse pour ça. Merci pour votre contribution. – SamT

Répondre

0

enlevé JSON.parse de

let departureCode = JSON.parse(req.body.departureCode); 

Il a travaillé. Aussi, fait des changements suggérés par Yogesh Patel dans les commentaires. Merci à tous.