繁体   English   中英

输入值未从表单中定义

[英]input value is undefined from form

我正在尝试使用GET方法访问表单数据,但它给了我未定义的信息。

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

我认为我将表单创建为:

          // 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

在我的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});
                });
            });

问题是您正在尝试访问GET请求的主体,但是GET请求没有主体来访问主体,因此您必须使用POST请求,但是由于您将值作为查询字符串参数发送,在您的快递代码中,您可以通过以下方式捕获它:

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});
            });
        });

查询字符串参数位于req.params.attributeName

您可以从req.query对象访问查询字符串参数。 因此,您可以通过req.query.email获取电子邮件属性值。 有关req.query的更多信息,请检查http://expressjs.com/en/api.html#req.query 请在您的app.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});
 });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM