一个笨蛋前端

好好学习,天天向上

express全局改权限处理

常规的web开发的项目中,涉及到权限处理的时候,我们一般用路由控制,但是涉及到复杂的多用户的权限处理的时候其中一种解决方案是用配置的权限表,来动态的增减用户的功能.
举例

渲染完整的权限页面==>权限表比对 剔除当前用户无效的权限=>渲染到用户窗口

这里的问题 无非就是集中在第二部分权限表比对 剔除当前用户无效的权限.
在express(koa类似)中我们就可以想到使用render函数的callback处理

res.render(tpl,data,function(html){  
    var reulst=Dosometing(html);
    res.send(reulst)
})

这样有个问题 全局那么多render难道要全局都写一遍?所以我们可以取个巧通过中间件重写一下render函数

router.use((req, res, next) => {
    //渲染函数重写
    res.renderCp = res.render;
    res.render = (FilePath, Data, callback) => {
        res.renderCp(FilePath, Data, (err, html) => {
            //改写一个函数不应该改掉原来的功能,要保留原来的callback的使用方法
            if (callback) return callback(err, html);
            if (err) return next(err);
            //权限过滤 Global.Render.Callback
            new_html=XXOO(html)
            res.send(new_html)
        });
    };
    next()
});
点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注