在URL中发送数据后,req.query在node.js中显示为空

时间:2014-03-07 02:56:28

标签: javascript node.js request passport.js

我希望在用户登录后将其他数据推送到数据库,并使用Passport处理用户身份验证/会话。我正在URL中正确传递数据,当用户点击按钮时,它会被重定向到包含所有数据的登录屏幕。出于某种原因,当我尝试解析品牌,图像和大小变量时,它给了我未定义的。

以下是我传递网址的方式:

res.redirect('/login?brand='+ encodeURIComponent(brandToFind) + '&size=' + encodeURIComponent(size_result) + '&image=' + encodeURIComponent(image_url)); 

当用户登录时,以下是名为的功能:

app.post('/login', passport.authenticate('local-login', {failureRedirect : '/login'}), 
function(req,res) {
  var user = req.user; 
  var brand = req.query.brand; 
  var size = req.query.size; 
  var image = req.query.image; 
  console.log("brand: "+ brand); 
  if (user) {
      var email_user = user.local.email; 
        var user_id = user._id; 
        User.update({'local.email': email_user} , { $push: { 'favorite_shoes': { 'brand': brand, 'size': size, 'image_url': image}}} , function(error) {
            if (error) return error;   
            console.log('Added %s with size=%s', brand, size);
          }); 
          req.flash('postAddFavs', 'Saved to Favorites!'); 
          res.redirect('/favorites'); 
    }
   }); 

我做错了什么?

0 个答案:

没有答案