[英]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.