首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >基于isAdmin值node.js显示导航项目

基于isAdmin值node.js显示导航项目
EN

Stack Overflow用户
提问于 2018-06-10 01:39:49
回答 1查看 145关注 0票数 0

我有一个node.js和express应用程序,在我的用户模型中有一个布尔型字段isAdmin。我想做的是隐藏导航中的某些元素,基于登录的用户是否是管理员。我已经写了两个助手auth.js检查用户是否登录,以下是代码:

代码语言:javascript
复制
module.exports = {
    ensureAuthenticated: function (req, res, next) {
        if (req.isAuthenticated()) {
            return next();
        }
        req.flash('error_msg', 'Not Authorized');
        res.redirect('/login');
    }
}

另一个助手是adminCheck.js,它检查用户是否是管理员:

代码语言:javascript
复制
module.exports = {
    adminUser: function (req, res, next) {
        if (req.user.isAdmin) {
            return next();
        }
        req.flash('error_msg', 'You have tried to access a restricted space. As a result you have been logged out!');
        res.redirect('/logout');
    }
}

对于我的管理相关的路由,我成功地使用了这些助手,如下所示:

代码语言:javascript
复制
// admin index route 
router.get('/', [ensureAuthenticated, adminUser], (req, res) => {
    res.render('admin/index');
});

但问题是我的html,在导航中,我可以根据用户是否登录来隐藏某些元素:

代码语言:javascript
复制
   {{#if user}}
                <div class="col-md-2">
                    <ul class="list-inline sm-pull-none sm-text-center text-right text-white mb-sm-20 mt-10">
                        <li class="m-0 pl-10">
                            <a href="/logout" class="text-white">
                                <i class="fa fa-user-o mr-5 text-white"></i> logout</a>
                        </li>

                        <li class="m-0 pl-10">
                            <a href="/admin" class="text-white">
                                <i class="fa fa-user-o mr-5 text-white"></i> Admin</a>
                        </li>


                    </ul>
                </div>
                {{else}}
                <div class="col-md-2">
                    <ul class="list-inline sm-pull-none sm-text-center text-right text-white mb-sm-20 mt-10">
                        <li class="m-0 pl-10">
                            <a href="/login" class="text-white">
                                <i class="fa fa-user-o mr-5 text-white"></i> Login /</a>
                        </li>
                        <li class="m-0 pl-0 pr-10">
                            <a href="/register" class="text-white">
                                <i class="fa fa-edit mr-5 text-white"></i>Register</a>
                        </li>
                    </ul>
                </div>
                {{/if}}

正如你在上面的html中看到的,有一个到admin的链接,我想根据登录的用户隐藏它,我该怎么做呢?什么是自定义助手代码来实现这一点?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-06-10 02:33:08

OK...so我只需要将我的语句更改为

代码语言:javascript
复制
{{#if user.isAdmin}}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50776924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档