获得没有意义的重定向

时间:2018-09-06 22:52:20

标签: node.js express routes stripe-payments

我正在尝试将条纹计划保存到我的用户,但是当我这样做时,我被重定向到/company/undefined,但这对我来说没有意义,因为我的代码中没有任何内容。我搜索了服务器目录中的所有文件,但没有发现任何问题。

我不太确定会发生什么,在我的路线中,您将看到一个isAuth中间件,它会检查用户是否登录。仅重定向到/或下一步通过。

当我传递一个有效的非空格条纹计划的req.body.plan值时,它可以工作,但是当我在其中引入空格或任何不是有效计划的东西时,它将给出错误404页面。

我已经包含了我的代码和示例摩根输出请求。

摩根输出:

GET /company/billing 304 9.932 ms - -
POST /company/plan 302 443.888 ms - 62
GET /company/undefined 404 9.528 ms - 1490

路线:

app.post('/company/plan',
isAuthenticated,
company.postPlan);

postPlan控制器:

exports.postPlan = function(req, res, next){
  var plan = req.body.plan;
  var coupon = req.body.coupon;
  if (coupon) {
    req.user.isUsedCoupon = true;
  }
  var stripeToken = null;
  if(plan){
    plan = plan.toLowerCase();
  }

  if(req.user.stripe.plan == plan){
    req.flash('info',  'The selected plan is the same as the current plan.');
    return res.redirect('/user/settings');
  }

  if(req.body.stripeToken){
    stripeToken = req.body.stripeToken;
  }
  if(plan != 'silver'){
    if(!req.user.stripe.last4 && !req.body.stripeToken){
      req.flash('errors',  'Please add a card to your account before choosing a plan.');
      return res.redirect('/user/settings');
    }
  }



  User.findById(req.user.id, function(err, user) {
    if (err) return next(err);

    user.setPlan(plan, coupon, stripeToken, function (err) {
      var msg;

      if (err) {
        if(err.code && err.code == 'card_declined'){
          msg = 'Your card was declined. Please provide a valid card.';
        } else if(err && err.message) {
          msg = err.message;
        } else {
          msg = 'An unexpected error occurred.';
        }

        req.flash('errors', msg);
        return res.redirect();
      }
      req.flash('success',  'Plan has been updated.');
      res.redirect('/user/settings');
    });
  });
};

0 个答案:

没有答案