Javascript 如何在vash视图中显示node.js局部变量(更新)
我想做的是: 使用中间件功能,我希望将会话中的用户数据存储到本地,以便以后在视图中使用它,而无需将这些数据存储在每个方法/控制器中 而不是在每个方法/控制器中: 和视图模板:Javascript 如何在vash视图中显示node.js局部变量(更新),javascript,node.js,vash,Javascript,Node.js,Vash,我想做的是: 使用中间件功能,我希望将会话中的用户数据存储到本地,以便以后在视图中使用它,而无需将这些数据存储在每个方法/控制器中 而不是在每个方法/控制器中: 和视图模板: <div> @model.user.username </div> 我想这样定义中间件: 并在视图中显示来自res.locals的数据。这是我的大问号。。。可能吗 我可以找到如何在vash视图中显示res.locals数据的任何信息 我是否遗漏了什么,我的解决方案是否合理 更新 最后我找到了解
<div>
@model.user.username
</div>
我想这样定义中间件:
并在视图中显示来自res.locals的数据。这是我的大问号。。。可能吗
我可以找到如何在vash视图中显示res.locals数据的任何信息
我是否遗漏了什么,我的解决方案是否合理
更新
最后我找到了解决办法。在VASH视图中显示app.locals非常简单:-
视图:
我会做我需要的:-
我希望有人会觉得它有用。我认为中间件无法与视图通信。但我不知道,也许可以将一些值绑定到所有视图。我也遇到了同样的问题,我用一种_-before方法解决了这个问题,该方法使用sails.js框架将此类数据绑定到所有视图。据我所知,JADE和EJS支持它……它适用于res.locals,但你知道如何访问app.locals吗?
<div>
@model.user.username
</div>
if (req.session.user) {
var now = new Date().getTime();
var data = req.session.user;
var timeout = data.loggedIn + config.auth.timeout;
if (timeout < now) {
req.session.user = null;
reg.flash('errors', {
param: 'default',
msg: 'Your session is expired...'
});
return res.redirect('/login');
}
res.locals.user = sesData;
}
return next();
<div>
@model._locals.user.username
</div>