我正在开发一个保留区域,其中包含以下几页:
/dashboard
/dashboard/profile
/dashboard/user
/dashboard/view
Run Code Online (Sandbox Code Playgroud)
这是一个简单的用户控制面板.目前我有四条路线:
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 */ });
Run Code Online (Sandbox Code Playgroud)
我想优化它,因为在上面的每一条路线中我都必须在开头调用这个函数:
authorized(req, function(auth){
if (!auth) return next(errors.fire(403));
/* route code */
});
Run Code Online (Sandbox Code Playgroud)
此函数检查用户是否已记录,因此我需要在每个保留页面上调用它.
我会做的事情如下:
app.all('/dashboard/*', function(req, res, next) {
authorized(req, function(auth){
if (!auth) return next(errors.fire(403));
res.render(something, {})
});
});
Run Code Online (Sandbox Code Playgroud)
在something
该res.render调用内部必须是我需要打开视图(页).
我想打电话给它一周时间,以删除冗余代码.
这可能是面板的主页(如果用户需要/仪表板)或页面(如果用户想要一个页面/仪表板如/ dashboard/profile),在最后一种情况下我需要渲染"profile"视图.
(我必须在将视图传递给render()之前进行检查,因为如果有人尝试/ …