我正在尝试使用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});
});
});
答案 0 :(得分:0)
问题是您正在尝试访问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
答案 1 :(得分:0)
您可以从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});
});