2017-10-20 36 views
0

J'essaie d'accéder à des données de formulaire à l'aide de la méthode GET, mais elle me donne un indéfini.La valeur d'entrée est indéfinie à partir du formulaire

URL: GET /search?email=dsdsd%40gmail.com

À mon avis, je suis en train de créer la forme comme:

  // search.jade 
     // register form 
       form(method='GET' action='/search') 
        div.form-group 
        label(for='email') Email: 
        input#favoriteBook.form-control(type='email', placeholder='' name='email' required) 
        button.btn.btn-primary(type='submit') Search 

Et dans mes app.js:

   app.get('/search',function(req,res){ // Performing search 
       console.log(req.body.email); // getting UNDEFINED 
       loadSchema.find({email: req.body.email},function(err,users){ 
        res.render('list',{users: users}); 
       }); 
      }); 
+1

Bienvenue dans Stack Overflow! J'ai édité votre question. Suivez les directives de stackoverflow afin de recevoir une meilleure réponse. N'ajoutez pas de balises et de codes non pertinents en question. Décrivez d'abord votre problème, puis expliquez ce que vous avez fait. Bonne chance! –

Répondre

0

Vous pouvez accéder à paramètre de chaîne de requête de l'objet req.query. Ainsi, vous pouvez obtenir la valeur de la propriété e-mail au req.query.email. Pour plus d'informations sur req.query, vérifiez http://expressjs.com/en/api.html#req.query. Veuillez passer à ce qui suit dans votre application.js

app.get('/search',function(req,res){ // Performing search 
    console.log(req.query.email); // prints email value 
    loadSchema.find({email: req.query.email},function(err,users){ 
    res.render('list',{users: users}); 
}); 
0

Le problème est que vous essayez d'accéder au corps de la requête GET, mais que la requête GET n'a pas de corps pour accéder au corps, vous devez utiliser une requête POST, mais puisque vous envoyez la valeur en tant que chaîne de requête param, dans votre code express que vous pouvez attraper cette façon:

app.get('/search',function(req,res){ // Performing search 
      console.log(req.params.email); // no UNDEFINED 
      loadSchema.find({email: req.params.email},function(err,users){ 
       res.render('list',{users: users}); 
      }); 
     }); 

La params de chaîne de requête vont sous req.params.attributeName

+0

J'ai changé le nom de la méthode du formulaire en POST et le corps avec les paramètres. ce n'est pas résolu le problème et la valeur n'est pas écrite dans la console. –