我正在尝试将条纹计划保存到我的用户,但是当我这样做时,我被重定向到/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');
});
});
};