Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查用户是否使用node.js和express登录并更改客户端html的最佳方法_Javascript_Node.js_Session_Express_Pug - Fatal编程技术网

Javascript 检查用户是否使用node.js和express登录并更改客户端html的最佳方法

Javascript 检查用户是否使用node.js和express登录并更改客户端html的最佳方法,javascript,node.js,session,express,pug,Javascript,Node.js,Session,Express,Pug,我正在用node.js和express做一个web应用程序;我也在使用mongoDB的会话。 我的服务器端代码如下所示: exports.home = function(req, res){ if(req.session.userEnabled){ console.log("logged"); res.render('home', { title: 'MY TITLE' , css: '/stylesheets/home.css',authenticated:'true'});

我正在用node.js和express做一个web应用程序;我也在使用mongoDB的会话。 我的服务器端代码如下所示:

exports.home = function(req, res){
if(req.session.userEnabled){
    console.log("logged");
    res.render('home', { title: 'MY TITLE' , css: '/stylesheets/home.css',authenticated:'true'});
}
else{
    console.log("not logged");
    res.render('home', { title: 'MY TITLE' , css: '/stylesheets/home.css',  authenticated:'false'});
}
function checkIfLogged(callback){
    $.get( '/checkIfLogged' , function(data) {
        alert('Result checkIfLogged: '+data);
        callback(data);
    });
}
})

在前端中,我检查值“authenticated”以显示不同的html:

script.
            if(#{authenticated})
                document.write("<div id='profile' class='myClass' ><p>SHOW PROFILE<p></div>");
            else
                document.write("<div id='register' class='myClass' ><p>REGISTER<p>");
}

将其调用为html:

script.
    var authenticated=checkIfLogged();
...
...
...
script.
        if(authenticated)
            document.write("<div id='profile' class='myClass' ><p>SHOW PROFILE<p></div>");
        else
            document.write("<div id='register' class='myClass' ><p>REGISTER<p>");
脚本。
var authenticated=checkiLogged();
...
...
...
剧本
如果(已验证)
文件。写(“显示个人资料””;
其他的
文件。写(“寄存器”;
但是这是一个不连续的结果,因此在页面已经加载了var authenticated的“false”值之后返回结果

通过这种方式,我认为我可以避免检查并将值从服务器端传递到每个res.render,但这不起作用。
我的第一个解决方案是正确的还是进入第二个解决方案?我是否即将找到更好的解决方案?

您可以尝试以下方法:

exports.home = function(req, res){
if(req.session.userEnabled){
    console.log("logged");
    res.render('home', { title: 'MY TITLE' , css: '/stylesheets/home.css',authenticated:'true'});
}
else{
    console.log("not logged");
    res.render('home', { title: 'MY TITLE' , css: '/stylesheets/home.css',  authenticated:'false'});
}
function checkIfLogged(callback){
    $.get( '/checkIfLogged' , function(data) {
        alert('Result checkIfLogged: '+data);
        callback(data);
    });
}

脚本。
检查日志(功能(已验证){
如果(已验证)
//我不会使用document.write,因为异步调用有点危险
文件。写(“显示个人资料””;
其他的
文件。写(“寄存器”;
});

谢谢;您认为将document.write放入另一个函数客户端更好吗?(所以我可以使用JQuery)好的,它太完美了!谢谢:)