Javascript Expressjs如何在用户登录时显示/隐藏div

Javascript Expressjs如何在用户登录时显示/隐藏div,javascript,node.js,authentication,forms-authentication,express,Javascript,Node.js,Authentication,Forms Authentication,Express,我遵循这个例子-> 工作正常,但我不喜欢你成功登录或注销时显示内容的方式 有没有其他方法可以让X或Y一次性通过用户身份验证?范例 我有一个线性形式的登录,将很高兴隐藏该div一次性用户它的身份验证,但我不能这样做 $(document).ready(function(){ if(req.session.user) { $(.class of teh frm to hide).hide(); } } 我也试过了 session.user 一直以来都告诉我它是未定义的。我把这个放在布局上了 那

我遵循这个例子->

工作正常,但我不喜欢你成功登录或注销时显示内容的方式

有没有其他方法可以让X或Y一次性通过用户身份验证?范例

我有一个线性形式的登录,将很高兴隐藏该div一次性用户它的身份验证,但我不能这样做

$(document).ready(function(){
  if(req.session.user) { $(.class of teh frm to hide).hide(); }
}
我也试过了 session.user

一直以来都告诉我它是未定义的。我把这个放在布局上了

那么,如果用户是经过身份验证的,或者如果用户是管理员,我如何在视图上显示内容呢

因为atm是我唯一能看到它授权某些路由并通过

req.session.success = 'Authenticated as ' + req.session.user.name
  + ' click to <a href="/logout">logout</a>. '
  + ' You may now access <a href="/restricted">/restricted</a>.';
} 
req.session.success='Authenticated as'+req.session.user.name
+“单击以打开。”
+“您现在可以访问。”;
} 

认为这不是一个好办法。

最好使用模板引擎来显示不同的内容,而不是客户端javascript。如果您正在使用jade,请执行以下操作:

在app.js中,创建一个变量,如果用户登录,该变量将传递给每个视图:

app.use(function(req, res, next){
  // all the stuff from the example
  if (req.session.user) {
    res.locals.user = req.session.user
  }
  next();
});
在模板引擎中使用此变量(例如jade):


它不应该是
app.locals.user
而不是
res.locals.user
,或者实际上存在不同的范围吗?
if user
  // show stuff here
else
  // for everyone else