Javascript node js博客,隐藏内容(针对未登录用户)

Javascript node js博客,隐藏内容(针对未登录用户),javascript,node.js,express,pug,stylus,Javascript,Node.js,Express,Pug,Stylus,我正在node.js中处理一个博客,我需要知道是否有办法为未登录的用户隐藏内容,如“编辑”、“删除”和“新建帖子”按钮?我可以将“来宾”重定向到没有这些按钮的页面,但这似乎有点愚蠢。这是我找到的一个登录方法,它可以工作,但是如何使用这个'req.session.user=username;'以一种好的方式 exports.login = function(req, res){ var username = req.body.username; var password = req

我正在node.js中处理一个博客,我需要知道是否有办法为未登录的用户隐藏内容,如“编辑”、“删除”和“新建帖子”按钮?我可以将“来宾”重定向到没有这些按钮的页面,但这似乎有点愚蠢。这是我找到的一个登录方法,它可以工作,但是如何使用这个'req.session.user=username;'以一种好的方式

exports.login = function(req, res){
    var username = req.body.username;
    var password = req.body.password;
    var hash = crypto.createHash('sha256').update(password).digest('base64');   

    r.connect( {host: 'localhost', port: 28015}, function(err, conn) {
        if (err) throw err;
        connection = conn;

        r.db("app").table("user").filter({username: username, password: hash}).run(conn, function(err, cursor){
            if (err) throw err;

            cursor.toArray(function(err, result){
                if(result.length == 0){
                    res.render("index", {msg: "No user with that name"})
                    }
                else{
                    console.log(username);
                    req.session.user = username;
                    res.redirect("index");
                    //res.render("menu");
                }
            });
        });
    });
};
我在node.js中使用express、jade和stylus。
我希望你能理解,如果我需要发布更多信息,请告诉我

一种解决方案可能是在视图中使用的res.locals上设置一个标志。你可以说res.locals.loggedIn=false;如果他们已登录,则在中间件堆栈的早期某处,或者如果他们已登录,则将其设置为true,例如,存在一个会话,其中包含一些信息,表明他们以前已成功进行身份验证


然后在你看来,你只需要做一些事情,比如如果loggedIn{/*显示按钮*/}

我对html/css不太擅长,比如说触控笔,代码会是什么样子,听起来很棒。。我理解'res.locals.loggedIn=false/true',但为了显示按钮,我取消了搜索。的首页显示了模板中if-else语句的示例。所以,把你在他们的例子中使用的Jade和loggedIn换掉。