小编Bla*_*ck2的帖子

如何优化Express.js路由?

我正在开发一个保留区域,其中包含以下几页:

/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()之前进行检查,因为如果有人尝试/ …

routes node.js express

4
推荐指数
1
解决办法
2675
查看次数

标签 统计

express ×1

node.js ×1

routes ×1