Javascript 检查用户是否使用node.js和express登录并更改客户端html的最佳方法
我正在用node.js和express做一个web应用程序;我也在使用mongoDB的会话。 我的服务器端代码如下所示: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'});
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)好的,它太完美了!谢谢:)