我正在开发一个保留区域,其中包含以下几页:
/dashboard
/dashboard/profile
/dashboard/user
/dashboard/view
这是一个简单的用户控制面板。目前我有四种路线:
app.all('/dashboard', function(req, res, next) { /* Code */ });
app.all('/dashboard/profile', function(req, res, next) { /* Code */ });
app.all('/dashboard/user', function(req, res, next) { /* Code */ });
app.all('/dashboard/view', function(req, res, next) { /* Code */ });
我想优化它,因为在上述每条路线中我都必须在开始时调用此函数:
authorized(req, function(auth){
if (!auth) return next(errors.fire(403));
/* route code */
});
该函数检查用户是否已登录,因此我需要在每个保留页面上调用它。
我会做类似的事情:
app.all('/dashboard/*', function(req, res, next) {
authorized(req, function(auth){
if (!auth) return next(errors.fire(403));
res.render(something, {})
});
});
the something
res.render 调用内部必须是我需要打开的视图(页面)。
我想称呼它ONE时间,删除多余的代码。
在最后一种情况下,我需要渲染“配置文件”视图,这可能是面板的主页(如果用户想要 /dashboard)或页面(如果用户想要 /dashboard 内的页面,如 /dashboard/profile)。
(我必须在将视图传递给 render() 之前进行检查,因为如果有人尝试 /dashboard/blablablabla 这应该是一个问题。)
谢谢