【发布时间】:2011-10-26 14:14:47
【问题描述】:
我正在开发一个保留区域,其中包含以下几页:
/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, {})
});
});
res.render 调用中的something 必须是我需要打开的视图(页面)。
我想将其称为 ONE 次,以删除冗余代码。
这可能是面板的主页(如果用户想要 /dashboard)或页面(如果用户想要 /dashboard 内的页面,如 /dashboard/profile)在最后一种情况下我需要呈现“配置文件”视图.
(在将视图传递给 render() 之前,我必须进行检查,因为如果有人尝试 /dashboard/blablablabla,这应该是个问题。)
谢谢
【问题讨论】: