【发布时间】:2017-11-01 01:33:20
【问题描述】:
我正在尝试使用 express 然后 next('route') 但我在文档中找不到太多关于如何执行此操作的信息,提到了 here。但它没有解释如何做
仅适用于使用 app.METHOD() 或 router.METHOD() 函数加载的中间件函数。
我不明白他们的意思,因为我以前从未使用过app.METHOD(),而且我无法找到有关如何正确使用next('route') 的文档。这行得通吗?
app.method('*', (req, res, next) => {
if(req.user == null) {
next();
} else {
User.findOne({"_id": req.user.id}, function(err, result) {
if(err){
console.log(err);
} else {
if(stripe.active == false && stripe.trial == false){
res.render('/dashboard/billing');
next('route');
} else {
next();
}
}
});
}
});
这还能用吗?我猜那里的某个地方我搞砸了。如果我做对了,那么它会找到一个用户,然后检查 is_active 和 is_trial 是否为假,如果是,则跳到下一条路线。我这样做的想法是,可以使用网站的任何没有登录用户的部分,然后当有登录用户并且两者都是假的时,我只让他们去/dashboard/billing。有人建议我这样做,以防止尚未付费但试用期结束的用户访问我的应用程序。
我正在测试的路线:
// dashboard
app.get('/dashboard',
setRender('dashboard/index'),
setRedirect({auth: '/login'}),
isAuthenticated,
(req, res, next) => {
},
dashboard.getDefault);
【问题讨论】:
标签: node.js mongodb express authorization saas